我正在尝试显示联系信息,并且从 stackOverflow 上的另一个问题中,我得到了以下代码段
String[] projection = new String[] {
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Email.DISPLAY_NAME
};
Uri contacts = ContactsContract.Contacts.CONTENT_LOOKUP_URI;
//id of the Contact to return.
long id = 3;
//Make the query.
Cursor managedCursor = managedQuery(contacts,
projection, // Which columns to return
null, // Which rows to return (all rows)
// Selection arguments (with a given ID)
ContactsContract.Contacts._ID = "id",
// Put the results in ascending order by name
ContactsContract.Contacts.DISPLAY_NAME + " ASC");
似乎 managedQuery 在 2.2 中已经改变(我相信我得到这个的原始问题被引用到 2.0)
2.2有什么变化?我找不到显示联系人的电子邮件、电话号码等的方法
编辑:这是我可以从 android 调试日志中找到的所有内容
08-24 20:49:51.893: ERROR/DatabaseUtils(519): Writing exception to parcel
08-24 20:49:51.893: ERROR/DatabaseUtils(519): java.lang.IllegalArgumentException: URI: content://com.android.contacts/contacts/lookup, calling user: com.example.android.contactmanager, calling package:com.example.android.contactmanager
08-24 20:49:51.893: ERROR/DatabaseUtils(519): at com.android.providers.contacts.LegacyApiSupport.query(LegacyApiSupport.java:1911)
08-24 20:49:51.893: ERROR/DatabaseUtils(519): at com.android.providers.contacts.ContactsProvider2.query(ContactsProvider2.java:4697)
08-24 20:49:51.893: ERROR/DatabaseUtils(519): at android.content.ContentProvider$Transport.bulkQuery(ContentProvider.java:150)
08-24 20:49:51.893: ERROR/DatabaseUtils(519): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:111)
08-24 20:49:51.893: ERROR/DatabaseUtils(519): at android.os.Binder.execTransact(Binder.java:288)
08-24 20:49:51.893: ERROR/DatabaseUtils(519): at dalvik.system.NativeStart.run(Native Method)