連絡先を別のアカウントに保存できるアプリを Android マーケットで公開しています。このアプリを使用すると、ユーザーは連絡先を保存するアカウントを選択できます。しかし、Motorola ユーザーの多くは、使用可能なアカウントのリストで Exchange アカウントを使用できないと報告しています。
連絡先を保存できる同期アダプターを取得するために使用するコードを次に示します。
final Set<String> accountTypeSet = new HashSet<String>();
final SyncAdapterType[] syncAdapters = ContentResolver.getSyncAdapterTypes();
for( final SyncAdapterType syncAdapter : syncAdapters ) {
if ( !syncAdapter.isKey
&& syncAdapter.isUserVisible()
&& syncAdapter.supportsUploading()
&& ContactsContract.AUTHORITY.equals( syncAdapter.authority ) )
{
accountTypeSet.add( syncAdapter.accountType );
}
}
私が理解している限り、Motorola デバイスの Exchange アカウントは、このコードのいくつかの条件に違反しています。しかし、問題を再現できる Motorola デバイスはありません。私の意見では、Motorola Exchange のSyncAdapterType.authority
値は とは異なる場合がありますContactsContract.AUTHORITY
。しかし、それは仮定にすぎません。この問題の本当の理由は何ですか?