【发布时间】:2016-06-02 17:33:43
【问题描述】:
我可以使用以下代码获取平板电脑上登录用户的内容提供者列表:
for (PackageInfo pack : getPackageManager().getInstalledPackages(PackageManager.GET_PROVIDERS)) {
ProviderInfo[] providers = pack.providers;
if (providers != null) {
for (ProviderInfo provider : providers) {
Log.d(TAG, "provider info: " + provider.authority);
}
}
}
但是,上面的代码并未列出设备上所有可用的内容提供程序,包括其他用户和受限配置文件。
我的问题: 是否可以列出平板电脑上所有用户/个人资料的内容提供者?
我看到 other questions on SO 对此有所了解,但他们只列出登录用户的内容提供者。
【问题讨论】:
-
只能获取登录用户的数据是常识。否则,这将是一个安全漏洞。
-
如果我想编写一个平板电脑上所有用户都可以使用的内容提供程序,该怎么办。是否可以定义这样的cp?
-
我认为每个用户都必须单独启动您的应用程序。
-
@Jehy 不确定我是否理解正确。我想纠正一个共享 CP,我希望它可以在我的应用程序中被桌子上的所有用户访问。有可能吗?
-
试试这个答案:stackoverflow.com/a/5302610/1727132 - 它不会尝试获取所有已安装的软件包,因此它可能会工作......如果没有,那么这是不可能的。
标签: android android-contentprovider android-contentresolver