应用可以确定手机上的其他应用以及他们拥有的权限吗?

时间:2014-07-14 18:02:52

标签: android permissions

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

2 个答案:

答案 0 :(得分:2)

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

注意:以下方法假定this是指活动。

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过滤返回的软件包列表。

答案 1 :(得分:0)

是的,你可以。对于Android,您只需转到设置&gt;应用

您只需点击要检查的应用程序,在底部就应该说明该应用拥有的权限。

对于ios,您可以转到设置&gt;隐私

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