連絡先リストに連絡先がいくつあるかを確認するにはどうすればよいですか?連絡先番号を取得しましたが、1人が複数の連絡先を持つことができるため、連絡先リストで連絡先の総数を見つける際にこれを考慮したいと思います。
3 に答える
すべての連絡先の電話番号の数を見つけるには
Cursor cursor = managedQuery(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
int count = cursor.getCount();
特定のRawContactIDのすべての電話番号の数を検索します(rawContactIdで連絡先IDの値を渡します)。
Cursor cursor = managedQuery(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.RAW_CONTACT_ID + " = " + rawContactId, null, null);
int count = cursor.getCount();
構成されているContactsListActivityに表示される連絡先の数は、次のクエリによって決定できます。
Cursor cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
int count = cursor.getCount();
ただし、個人が複数のアカウントで入力されている場合、ContactsContract.Contactsはそのようなすべての連絡先を結合するため、上記のクエリによって取得されるインスタンスは1つだけです。
Cursor cursor = managedQuery(RawContacts.CONTENT_URI, null, null, null, null);
int count = cursor.getCount();
ContactsContract.ContactsとRawContactsの関係は、 http: //developer.android.com/resources/articles/contacts.htmlで確認できます。
これがあなたの疑問を解決することを願っています!
本当に古いスレッドですが、電話番号のある連絡先を数えたい場合は、これを使用できます。
Cursor cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI, null, ContactsContract.Contacts.HAS_PHONE_NUMBER, null, null);
int count = cursor.getCount();
もちろん、managedQueryは現在非推奨ですが、これはバインドに役立ちます:)
managedQueryが非推奨になったことを知っているので、このタスクを次のように実行できます
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC");
int contactNewCount = cursor.getCount();
cursor.close();