SDK の例に基づいて、独自の SyncAdapter を作成します。外部ソースから連絡先を追加する必要があり、デバイス エミュレーターで完璧に動作します。しかし、結局 HTC Desire で実行すると、[連絡先] -> [表示オプション] に自分のアカウントが表示されません。
また、Desire で Google の例を試してみましたが、このリストにも表示されませんでした。誰かが解決策を知っていますか?
SDK の例に基づいて、独自の SyncAdapter を作成します。外部ソースから連絡先を追加する必要があり、デバイス エミュレーターで完璧に動作します。しかし、結局 HTC Desire で実行すると、[連絡先] -> [表示オプション] に自分のアカウントが表示されません。
また、Desire で Google の例を試してみましたが、このリストにも表示されませんでした。誰かが解決策を知っていますか?
デフォルトでアカウントを表示することで解決します。
ContentProviderClient client = getContentResolver().acquireContentProviderClient(ContactsContract.AUTHORITY_URI);
ContentValues values = new ContentValues();
values.put(ContactsContract.Settings.ACCOUNT_NAME, account.name);
values.put(ContactsContract.Settings.ACCOUNT_TYPE, account.type);
values.put(ContactsContract.Settings.UNGROUPED_VISIBLE, true);
try
{
client.insert(Settings.CONTENT_URI.buildUpon().appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true").build(), values);
}
catch (RemoteException e)
{
e.printStackTrace();
}
そのアカウントはデフォルトで表示され、連絡先のアカウントリストに表示されます
標準の連絡先アプリケーションの[表示オプション]でアカウントを表示するには、アプリケーションに必要なメタデータをここで説明するように指定します。SyncAdapter
syncadapter.xml
また、 でandroid.permission.WRITE_SYNC_SETTINGS
パーミッションの使用を指定する必要がありますAndroidManifest.xml
。
UNGROUPED_VISIBLE
連絡先グループのリストに対してのみ表示されるようにします。