ContactsContract でユーザー プロファイルを作成しようとしています...プロファイルがないため、テスト用にプロファイルが必要です。私は実際の Android デバイスを持っておらず、テスト用の AVD Emulator しか持っていません。
私が作業しているコードブロックは次のとおりです。
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
.withValue(RawContacts.ACCOUNT_TYPE, null)
.withValue(RawContacts.ACCOUNT_NAME, null)
.build());
ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, 0)
.withValue(Data.MIMETYPE, Profile.CONTENT_RAW_CONTACTS_URI)
.withValue(Profile.IS_USER_PROFILE, 1)
.build());
ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, 0)
.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.DISPLAY_NAME, name)
.build());
this.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
このエントリをユーザー プロファイルにする行を削除すると、正常に機能します (つまり、名前が挿入されます)。ただし、IS_USER_PROFILE フラグを使用してエントリを設定する方法がわかりません。
アプリからユーザー プロファイルを作成できますか? もしそうなら、なぜこれがうまくいかないのかについてのアイデアはありますか?
どうもありがとう!スコット