我在Android电子市场上发布了一个可以将联系人保存到不同帐户的应用。此应用程序允许用户选择一个帐户来保存联系人。但是很多摩托罗拉用户报告说,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 );
}
}
据我所知,摩托罗拉设备上的Exchange帐户违反了此代码中的某些条件。但我没有任何摩托罗拉设备来重现这个问题。在我看来,摩托罗拉交换SyncAdapterType.authority
值可能与ContactsContract.AUTHORITY
不同。但这只是一个假设。这个问题的真正原因是什么?