こんにちは、実際には、番号を持つすべての連絡先を取得するためにこれを行っています:
String[] projecao = new String[] { ContactsContract.Contacts._ID,
ContactsContract.Contacts.LOOKUP_KEY,
ContactsContract.Contacts.DISPLAY_NAME };
String selecao = ContactsContract.Contacts.HAS_PHONE_NUMBER + " = ? ";
Cursor contatos = contexto.getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI, projecao, selecao,
new String[] { "1" }, null);
そして、各連絡先のすべての番号を取得するには:
while (contatos.moveToNext()){
Cursor numbers = contexto
.getContentResolver()
.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
new String[] { ContactsContract.CommonDataKinds.Phone.NUMBER },
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = ?",
new String[] { contatos.getString(contatos
.getColumnIndex(ContactsContract.Contacts._ID)) },
null);
numbers.moveToFirst();
StringBuilder sb = new StringBuilder();
do {
sb.append(numbers.getString(numbers
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))
+ ", ");
} while (numbers.moveToNext());
}
しかし、Facebookからの番号を選択することはできません。
そのエラーが表示されます: インデックス 0 要求。このエラーは、カーソル番号がどの番号とも一致しなかったために発生します。