3

https://developer.android.com/reference/android/provider/ContactsContract.Contacts.Entity.html#CONTENT_DIRECTORYを参照しています。そして、より良い結果を得るために、ContactsContract.Contacts.EntityURIを使用したいと思います。APiレベルは11で、デバイスのOSは4.0です。以下のコードを使用しています。そして、以下は私がログに記録している例外です。連絡先Contract.Contacts.EntityAPIをどのように使用できるかアドバイスしてください。

原因:java.lang.IllegalArgumentException:URI:content://com.android.contacts/contacts/entities

Cursor phones=null;
ContentResolver cr = getContentResolver();     
Uri phoneuri = Contacts.CONTENT_URI;
Uri phone_uri =  phoneuri.withAppendedPath(phoneuri,  ContactsContract.Contacts.Entity.CONTENT_DIRECTORY);
phones = cr.query(phone_uri, null, null, null, null);
for(int i=0;i<phones.getCount();i++)
{
    Log.e("int","f_name="+phones.getColumnName(i));
}
phones.close();
4

2 に答える 2

1

このコードを使用して、Androidからすべての連絡先を取得します。

ContentResolver cr = getContentResolver();
String[] projection = { ContactsContract.Contacts.DISPLAY_NAME,
                        ContactsContract.Contacts._ID };
Cursor contacts = cr.query(ContactsContract.Contacts.CONTENT_URI,
                                projection, null, null, "UPPER("
                                + ContactsContract.Contacts.DISPLAY_NAME + ") ASC");
startManagingCursor(contacts);

これがお役に立てば幸いです。

于 2012-09-14T10:47:02.567 に答える
1
int contactId = 111;//one contact's id
Uri contactsUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
Uri entityUri = Uri.withAppendedPath(contactsUri, Contacts.Entity.CONTENT_DIRECTORY);
Cursor c = getContentResolver().query(entityUri,
         null,null, null, null);
于 2015-11-26T02:58:03.037 に答える