0

我有这个代码:

context.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);

在某些手机上(用户向我报告)它会导致:

java.lang.IllegalArgumentException:未知权限 com.android.contacts

但是,已安装的软件包中列出了类似的权限:

联系人;com.android.contacts

或者

com.google.contacts.gal.provider

注意联系人;前缀 - 对我来说似乎不太好。我使用此代码来获取它:

String message="";
for (android.content.pm.PackageInfo pack : context.getPackageManager().getInstalledPackages(PackageManager.GET_PROVIDERS)) {
 ProviderInfo[] providers = pack.providers;
 if (providers != null) {
  for (ProviderInfo provider : providers) {
  message=message+", "+provider.authority;
 }
 }
}

如果 com.android.contacts 失败,您认为故障转移到联系人是否合适;com.android.contact?

4

1 回答 1

1

联系人提供商在其权限中列出了“contacts;com.android.contacts”。此列表应由内容解析器解析,您不需要将此字符串用作权限。

可能您需要了解有关有此问题的手机的更多信息。

于 2014-07-08T17:31:24.313 回答