在Android上添加新联系人没有活动来处理意图错误

时间:2012-08-25 05:16:49

标签: android

我正在尝试向android添加新联系人并收到此ActivityNotFoundException:No Activity来处理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>

1 个答案:

答案 0 :(得分:1)

尝试将这些更改为

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"/>