【问题标题】:How to get list of content providers for all users on a tablet如何获取平板电脑上所有用户的内容提供商列表
【发布时间】: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


【解决方案1】:

在研究并尝试了所有可能的选项(包括本文中的参考资料)后,我发现不可能编写一个可以在平板电脑上跨多个用户和受限配置文件共享数据的内容提供程序

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多