在android中启动活动的问题

时间:2011-09-14 05:36:04

标签: android

我在开始新活动时遇到问题。我想开始一项活动,以便用户可以选择他/她的联系人列表中的联系人列表。 这就是我必须启动一个意图,它是通过点击按钮触发的。

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)指出了一些关于如何阅读这些崩溃日志的资源?

2 个答案:

答案 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