Tôi đang làm việc trên ứng dụng Android Honeycomb (v3.0) có yêu cầu hiển thị TẤT CẢ các liên hệ được lưu trữ trong tài khoản Google được đăng ký trên thiết bị. Một trong những vấn đề tôi gặp phải là tôi chỉ có thể truy xuất các liên hệ có sẵn trong "Danh sách liên hệ của tôi", "Được gắn dấu sao trong Android" và "Người liên hệ khác". Tôi cũng muốn có thể lấy danh bạ từ "Thư mục". Tôi tin rằng phần "Thư mục" là một tính năng do Google cung cấp cho các tổ chức và công ty muốn cung cấp thư mục của tất cả thành viên/nhân viên trong miền của họ cho người khác. Xin vui lòng xem hình dưới đây:Android 3.0 - Cách truy xuất TẤT CẢ các liên hệ qua ContactsContract
Cho đến nay, tôi có dòng sau trong file manifest của tôi:
<uses-permission android:name="android.permission.READ_CONTACTS" />
Tôi đã cố gắng sử dụng mã này:
Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
}
cursor.close();
Trong trường hợp của tôi, "Danh bạ của tôi" và "Được gắn dấu sao trong Android" đều trống. Tuy nhiên, (1) liên hệ trong "Danh sách liên hệ khác" thu được. Tuy nhiên, "Thư mục" chứa hàng trăm địa chỉ liên hệ không được truy xuất.
Câu hỏi của tôi: Có cách nào để đảm bảo rằng các liên hệ trong "Thư mục" cũng được truy lục không? Tôi biết rằng tôi có thể chỉ cần sao chép danh bạ qua trình duyệt web và sau đó đồng bộ hóa chúng với thiết bị, nhưng nếu một liên hệ mới được thêm vào "Thư mục", tôi sẽ phải thực hiện việc này theo cách thủ công mọi lúc, vì vậy đây không phải là một lựa chọn tuyệt vời cho tôi. Xin cho biết.
http://developer.android.com/resources/samples/ContactManager/index.html – VicVu
Tôi vừa thử đoạn code trong phương thức GetContacts() chức năng (ContactManager. tệp java), nhưng cuối cùng sẽ không có mục nào cho dù tôi đặt mShowInvisible thành gì. – BVB
Đặt 'String selection = null;' trả lại kết quả tương tự như tôi đã có với mã tôi đã đề cập. – BVB