2

アプリケーションから新しい ContactContract API を使用して、連絡先リストに新しい連絡先を追加しようとしています。Android dev の連絡先マネージャーの例に基づいて、次の方法があります。

    private static void addContactCore(Context context, String accountType, String accountName, String name, String phoneNumber, int phoneType) throws RemoteException, OperationApplicationException {

    ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();

    //Add contact type
    ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
            .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, accountType)
            .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, accountName)
            .build());

    //Add contact name
    ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
            .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
            .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
            .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, (!name.toLowerCase().equals("unavailable") && !name.equals("")) ? name : phoneNumber)
            .build());

    //Add phone number
    ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
            .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
            .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
            .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, phoneNumber)
            .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, phoneType)
            .build());

    //Add contact
    context.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
}

1 つの例では、パラメーターのフロー値があります。accountType:com.google accountName:(私の Google アカウントのメールアドレス) name:Mike phoneNumber:5555555555 phoneType:3

関数の呼び出しは例外がスローされることなく正常に戻りますが、電話の連絡先マネージャーに連絡先が見つかりません。また、私の電話にはすでにその情報との連絡がありません。私が間違っているかもしれないことについて誰かが洞察を持っていますか?

4

2 に答える 2

1

特定のアカウントに関連付けられている連絡先を表示するには、表示オプションを変更する必要があります。

于 2010-05-28T05:29:01.503 に答える
0

おそらく、「システム グループ: My Contacts」グループにも追加する必要があります。

于 2011-01-13T21:30:37.477 に答える