1

連絡先を名簿に挿入することに成功しました。連絡先の参照をアプリに保存する必要があります。参照を保存する最良の方法は、RawContactsID自体を取得することであると考えました。

新しい連絡先を挿入した直後に、アドレス帳からIDを直接取得する方法はありますか?または、すべてのレコードを取得し、それらをデータと比較してRawContacts IDを取得する必要がありますか?

私はこのコードを使用して挿入を行います:

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
int rawContactInsertIndex = ops.size();
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
    .withValue(RawContacts.ACCOUNT_TYPE, null)
    .withValue(RawContacts.ACCOUNT_NAME, null)
    .withValue(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_DISABLED)
    .build());

回避策であろうとAPIからであろうと、どんな入力にも感謝します。ありがとう!

4

1 に答える 1

8

getContentResolver()から返された情報を使用できます(DBにopsを追加するには、とにかく呼び出す必要があります。getContentResolver()には、try、catch環境が必要です。

...
ContentProviderResult[] res = getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
...
Uri myContactUri = res[0].uri;
int lastSlash = myContactUri.toString().lastIndexOf("/");
int length = myContactUri.toString().length();
int contactID = Integer.parseInt((String) myContactUri.toString().subSequence(lastSlash+1, length));
于 2012-02-16T19:00:49.917 に答える