Nó rất dễ dàng để mở Android Liên App để hiển thị tất cả danh bạ và chọn một trong số họ:Mở Liên Picker với một Lọc
trong Hoạt động:
private int PICK_CONTACT = 853456;
// ...
// open contact list
void openContactPicker() {
Intent it= new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
startActivityForResult(it, PICK_CONTACT);
}
// when back from intent: use pick result
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// ...
switch (requestCode) {
case PICK_CONTACT:
if (dataOk(data)) {
extractContactInfo(data);
} else {
showErrorMessage();
}
break;
// ...
}
Nhưng là nó có thể thiết lập một số bộ lọc tiêu chí, để Ứng dụng Liên hệ sẽ chỉ hiển thị những liên hệ có phần tử được chỉ định - ví dụ thông tin bưu chính đầy đủ hoặc email thích hợp hoặc số điện thoại?
My App cần các thông tin bưu chính, công việc dòng chảy hiện thực hiện là như thế:
- Người dùng nhấp vào nút để mở danh bạ
- Liên App được khởi động, hiển thị tất cả địa chỉ liên lạc
- dùng chọn một
- trở lại trong hoạt động của tôi liên lạc được kiểm tra
- thông tin bưu điện có sẵn -> làm điều đúng .210
- thông tin bưu điện không có sẵn -> hộp thông báo
Vì nhiều địa chỉ liên lạc không có một thông tin bưu điện, trong hầu hết các trường hợp, một hộp thông báo 'xin lỗi không có thông tin bưu chính dành cho liên hệ này sẽ được hiển thị. Đây không phải là hành vi có thể chấp nhận được.
Một thay thế là - tôi chỉ thực hiện điều này - để truy vấn cơ sở dữ liệu địa chỉ liên lạc bên trong ứng dụng và làm các việc lọc trong mã của riêng tôi, nhưng sử dụng phương pháp này có một số ý nghĩa:
- ứng dụng đòi hỏi sự đọc danh bạ cho phép, mà có thể là một không đi cho nhiều người sử dụng
- một bảng chọn tiếp xúc đã được thực hiện, trong đó có thể trông khác so với cái người dùng quen thuộc với
vì vậy, thiết lập một số tiêu chí cho hệ Ứng dụng có vẻ như một chất nhầy h cách thanh lịch hơn để làm điều này.
Ứng dụng sẽ chạy trên Android 2.3.3 trở lên.
Câu hỏi:
- Có thể trên 2.3.3 để thiết lập các tiêu chí lọc cho hệ App, khi bắt đầu nó qua startActivityForResult (đặc biệt là sth như 'has_postal_information'.)?
- Nếu không: có thể có trên các phiên bản hệ điều hành sau này không?