1

我正在尝试向 android 添加新联系人并收到此 ActivityNotFoundException: No Activity to handle intent。我很确定我需要使用意图过滤器来解决这个问题,但不知道如何。

Intent addContactIntent = new Intent(ContactsContract.Intents.SHOW_OR_CREATE_CONTACT);
addContactIntent.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE);
addContactIntent.putExtra(ContactsContract.Intents.Insert.NAME, "My Name");
addContactIntent.putExtra(ContactsContract.Intents.Insert.PHONE, "123456789");
startActivity(addContactIntent);

这是我的清单文件:

<activity
    android:name=".MainActivity"
    android:label="@string/title_activity_main" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <data android:mimeType="application/com.example.android.beam"></data>
    </intent-filter>
    <intent-filter>
        <action android:name="com.android.contacts.action.SHOW_OR_CREATE_CONTACT" />
        <data android:scheme="mailto" />
        <data android:scheme="tel" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>
4

1 回答 1

2

尝试将这些更改为

Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setType(ContactsContract.Contacts.CONTENT_TYPE);

// 您可以发送两个信息示例,以便为 // 用户预先填写数据。请参阅 android.provider.ContactsContract.Intents.Insert 以获取完整的 // 列表。

intent.putExtra(ContactsContract.Intents.Insert.NAME, "some Contact Name");
intent.putExtra(ContactsContract.Intents.Insert.PHONE, "some Phone Number");

您还必须添加此权限

<uses-permission android:name="android.permission.READ_CONTACTS"/>
于 2012-08-25T05:20:29.353 回答