【问题标题】:Can an app determine the other apps that are on the phone and what permissions they have?一个应用程序能否确定手机上的其他应用程序以及它们拥有的权限?
【发布时间】:2014-07-14 18:02:52
【问题描述】:

我想知道某个应用是否有权访问显示手机上其他应用的信息以及它们拥有哪些权限(即访问您的位置、联系人等)。我可以创建一个具有显示其他应用程序及其权限的功能的应用程序吗?我知道用户可以通过设置查看此信息,但我想知道它是否可以由应用程序组织和显示。

【问题讨论】:

  • 由于各种操作系统将具有完全不同的权限以及找出它们的能力和方法,因此对所有操作系统都提出一个问题是没有任何意义的。请针对 iOS 和 Android 提出单独的问题 - 请先搜索,因为我相当确定 iOS 已经有人问过这个问题。
  • 是的,你就在那儿。我主要关注iOS。很抱歉添加了那个 android 标签而不是分成两个问题。抱歉,搜索了但在其他地方找不到这个问题
  • 您已经在这里得到了 Android 答案;这就是我留下那个标签的原因。我建议为 iOS 创建一个新问题。

标签: android permissions


【解决方案1】:

是的。使用PackageManager。调用GetInstalledPackages 列出已安装的包,然后检查requestedPermissions 字段以查看每个包的权限。

注意:下面的方法假设this指的是一个Activity。

private void getAppPermissions() {

    List<PackageInfo> apps = this.getPackageManager().getInstalledPackages(PackageManager.GET_PERMISSIONS);

    for (PackageInfo app : apps) {
        String appInfo = app.packageName + ": ";
        String[] permissions = app.requestedPermissions;
        if (null == permissions) {
            appInfo += "no permissions requested\n";
        } else {
            for (String permission : app.requestedPermissions) {
                appInfo += "\n    " + permission;                   
            }
        }
        Log.v("App Permissions", appInfo);
    }
}

您可能希望按照this question 过滤返回的包列表。

【讨论】:

  • 这对安卓来说很棒,谢谢!如果我可以在其他地方找到 iOS 的答案,那么我会将其标记为已回答
【解决方案2】:

是的,你可以。对于 Android,您只需转到设置 > 应用程序

您只需点击您要检查的应用程序,底部应该会显示该应用程序拥有的权限。

对于 ios,您转到设置 > 隐私

然后您点击所需的权限类型,您就可以看到拥有该权限的应用程序。

【讨论】:

  • 啊,抱歉,我的问题不够清楚。我会编辑它。我想知道手机上的应用程序是否可以访问此信息。我知道用户可以看到所有这些,但我想知道我是否可以制作一个具有显示手机上所有其他应用程序权限的功能的应用程序。
  • 要让应用程序查看应用程序的权限将需要ROOTING手机。所以你可以制作一个应用程序,但你需要root。例如,可以查看权限的根应用程序是 Titanium Backup。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多