Saya sedang mengerjakan Android 2.0 dan mencoba menerima daftar semua kontak.
Karena android.provider.Contacts.People tidak digunakan lagi, saya harus menggunakan android.provider.ContactsContract , Tapi saya tidak dapat menemukan contoh yang tepat tentang cara menggunakannya (mis .: mengambil daftar semua kontak di buku telepon).
Adakah yang tahu di mana menemukan contoh seperti itu?
android
contacts
android-2.0-eclair
appme up
sumber
sumber
Jawaban:
Pertama, pastikan Anda telah menambahkan
ke file AndroidManifest.xml Anda, kemudian Anda dapat melakukan loop melalui kontak telepon Anda seperti ini:
Selain itu, Anda dapat melakukan loop melalui kontak Anda dan cukup mendapatkan nama dan nomor telepon seperti ini:
Selanjutnya, jika Anda perlu mendapatkan hal-hal seperti catatan dari kontak, maka Anda perlu menggunakan URI yang berbeda, seperti berikut (silakan gunakan metode ini):
Perhatikan kali ini saya tidak hanya menggunakan id kontak tetapi juga jenis mime untuk kueri.
sumber
Senang melihat beberapa info berguna, sungguh membuat frustasi betapa buruknya topik penting ini dicakup oleh dokumen dan semacamnya. Setelah terlalu banyak peretasan, saya pikir saya akan membagikan sedikit kode juga. Kode berikut sedikit lebih cantik dan menyelesaikan hal yang sama dengan lebih efisien.
Potongan kode di atas mengembalikan Cursor yang mengarah ke kueri yang dihasilkan yang hanya berisi baris-baris yang memiliki nomor telepon. Ini bagus karena Anda biasanya memiliki banyak kontak tanpa nomor. Selanjutnya, PROJECTION membatasi jumlah data yang dikembalikan.
Potongan di atas mendapatkan nomor telepon yang terkait dengan setiap ID kontak yang memiliki nomor telepon. Saya menyimpan semua info dalam tabel hash dan dengan nilai kunci nomor telepon. Saya menghapus nomor telepon dari semua info digit juga. Untuk beberapa alasan meskipun ContactsContract.CommonDataKinds.Phone.HAS_PHONE_NUMBER valid jika Anda memasukkannya ke dalam argumen proyeksi itu melanggar kueri, saya tidak tahu mengapa dan itu membuat frustasi.
Bagian kedua dari kode di atas terlalu lambat, semua panggilan kueri hanya menghambat semuanya. Kode berikut jauh lebih cepat. Ambil saja semua baris untuk konten telepon dan gunakan contact_ids untuk mengurutkan data yang Anda inginkan.
Anda berakhir dengan hashtable dengan semua info yang Anda inginkan di dalamnya. Tentu saja Anda dapat memasukkan informasi apa pun yang Anda inginkan ke dalam struktur data. Cara kedua melakukannya jauh lebih cepat.
sumber
ContactsContract.Data.DISPLAY_NAME
) dalam proyeksi Anda; maka Anda tidak perlu melakukan simulasi gabungan yang berantakan di Java.Hanya ingin menambahkan, saat Anda mengambil kontak, Anda mungkin mendapatkan banyak kontak "sampah" - misalnya beberapa alamat email yang pada suatu saat pernah dikirimi email oleh pengguna, tetapi tidak digabungkan ... Jika Anda menginginkannya saja kontak yang terlihat oleh pengguna, seperti pada aplikasi kontak Android sendiri, Anda perlu membatasi pilihan hanya ke IN_VISIBLE_GROUP.
sumber
Saya pikir penting untuk memiliki kode dari URL ini http://coderzheaven.com/2011/06/get-all-details-from-contacts-in-android/ di StackOverflow karena terkadang tautan seperti itu turun.
teks yang ditekankan
sumber
Saya menemukan solusi yang sangat mudah untuk membaca kontak. (bosan menulis kode untuk membaca setiap nilai jadi sebaiknya gunakan kelas pembungkus untuk kontak)
Tentu saja
<uses-permission android:name="android.permission.READ_CONTACTS"/>
ContactList.java
Contact.java
Address.java
Email.java
Im.java
Organisation.java
Phone.java
ContactAPI.java
KontakAPISdk5.java
KontakAPISdk3.java
Catatan : Jangan lupa untuk mengganti nama paket
*******
.Sumber (link bisa mati kapan saja :))
sumber
Taruh ini ....
Beri tahu saya jika ada masalah.
sumber
Bagian ini tidak akan berhasil untuk saya:
Namun, jika saya menggunakan ini, ini berfungsi:
sumber
Anda dapat menggunakan contoh "ContactManager" dari situs pengembang android (ATAU) Pergi ke lokasi di mana Anda telah menyetel jalur untuk mengunduh android-sdk di sistem Anda. Di folder android-sdk-mac_x86 / samples / android-10, Anda dapat melihat contoh "ContactManager".
Saya telah mencoba menggunakan contoh ini, bekerja dengan baik di aplikasi saya.
sumber
Saya menggunakan Samsung Galaxy Note 4, dan saya tidak tahu mengapa semua hal di atas tidak berhasil untuk saya. Aku mencampurkan beberapa dan membuat ini terbangun ..
sumber