1

Androidに新しい連絡先を追加しようとしていますが、このActivityNotFoundException:インテントを処理するアクティビティがありません。この問題を解決するにはインテントフィルターを使用する必要があると確信していますが、その方法がわかりません。

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);

// ユーザーのデータを事前入力するために送信できる // 情報の例を 2 つだけ示します。// 完全なリストについては、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 に答える