7

SDK の例に基づいて、独自の SyncAdapter を作成します。外部ソースから連絡先を追加する必要があり、デバイス エミュレーターで完璧に動作します。しかし、結局 HTC Desire で実行すると、[連絡先] -> [表示オプション] に自分のアカウントが表示されません。

また、Desire で Google の例を試してみましたが、このリストにも表示されませんでした。誰かが解決策を知っていますか?

4

2 に答える 2

6

デフォルトでアカウントを表示することで解決します。

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

そのアカウントはデフォルトで表示され、連絡先のアカウントリストに表示されます

于 2010-12-05T21:30:45.123 に答える
0

標準の連絡先アプリケーションの[表示オプション]でアカウントを表示するには、アプリケーションに必要なメタデータをここで説明するように指定します。SyncAdaptersyncadapter.xml

また、 でandroid.permission.WRITE_SYNC_SETTINGSパーミッションの使用を指定する必要がありますAndroidManifest.xml

UNGROUPED_VISIBLE連絡先グループのリストに対してのみ表示されるようにします。

于 2013-07-11T12:04:10.793 に答える