我在开始新活动时遇到问题。我想开始一项活动,以便用户可以选择他/她的联系人列表中的联系人列表。 这就是我必须启动一个意图,它是通过点击按钮触发的。
Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_LOOKUP_URI);
startActivityForResult(intent, kPickContact);
我收到此错误
09-14 01:34:04.402: ERROR/ActivityManager(106): java.lang.IllegalArgumentException: URI: content://com.android.contacts/contacts/lookup, calling user: android.uid.system:1000, calling package is one of: [com.google.android.backup, com.android.providers.settings, com.android.systemui, com.android.providers.subscribedfeeds, com.android.settings, android, com.android.server.vpn]
09-14 01:34:04.402: ERROR/ActivityManager(106): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:144)
09-14 01:34:04.402: ERROR/ActivityManager(106): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114)
09-14 01:34:04.402: ERROR/ActivityManager(106): at android.content.ContentProviderProxy.getType(ContentProviderNative.java:387)
09-14 01:34:04.402: ERROR/ActivityManager(106): at com.android.server.am.ActivityManagerService.getProviderMimeType(ActivityManagerService.java:5586)
09-14 01:34:04.402: ERROR/ActivityManager(106): at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:1267)
09-14 01:34:04.402: ERROR/ActivityManager(106): at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:1467)
我讨厌在这里转储错误日志,但我对android很新,我不知道如何解析这个崩溃日志。有人可以a)让我深入了解我做错了什么,并且b)指出了一些关于如何阅读这些崩溃日志的资源?
答案 0 :(得分:2)
您可以获取要使用此查询的联系人列表。
Cursor cursor = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
new String[] { Phone._ID, Phone.DISPLAY_NAME, Phone.NUMBER },
null, null, null);
startManagingCursor(cursor);
cursor.moveToFirst();
cursor.getColumnCount();
for (int i = 0; i < cursor.getCount(); i++) {
contactName.add(cursor.getString(1));
cursor.moveToNext();
}
答案 1 :(得分:0)
我可能为时已晚,但希望对某人有所帮助...
而不是Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_LOOKUP_URI);
你应该使用
Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
虽然从docs建议使用Contacts.CONTENT_LOOKUP_URI