2

我有一个公共库,它通过 ContentProvider 提供一个公共数据存储库。然后各个应用程序引用该库,但有自己独特的数据存储(即数据库模式是共享的,但每个应用程序都有自己的数据库)。

我的问题是,当我同时安装了两个应用程序时,由于权限相同,我遇到了冲突。所以我需要为每个应用程序有一个唯一的内容权限,但是找不到在代码中引用唯一权限的好方法(配置清单不是问题)。我按照建议在每种类型中使用静态 CONTENT_URI,但需要为每个应用程序返回不同的值(引用特定于应用程序的权限)。恐怕我需要把所有东西都变成非静态访问器,但我真的不想这样做。还有其他我想念的方式吗?也许我可以在清单中设置一些东西?

4

1 回答 1

3

您将需要使用 PackageManager.getProviderInfo() 检索提供者的 ProviderInfo。ComponentName 可以从提供者所在的上下文及其类构建。ProviderInfo.authority 提供权限。(如果有多个权限,这些权限都包含在该字符串中,以逗号分隔的列表形式出现。)

于 2011-09-01T19:24:01.930 回答