如何检查权限授予的其他应用程序

时间:2015-11-26 16:23:54

标签: java android permissions

我是否可以在我的应用程序中使用checkPermission (String permName, String pkgName)来检查授予权限的其他应用程序?

例如,如果我想检查我的设备中安装的app1是否已授予android.permission.WRITE_CONTACTS,是否可以使用checkPermission在我的应用中检查? 我知道新版本的marshmallow允许用户撤销一些权限,因为我想检查它

如果不允许,请建议替代方法。 This more information about checkPermission

1 个答案:

答案 0 :(得分:4)

PERMISSION_GRANTED是一个数字。具体而言,it has a value of 0。你不能用数字来检查任何东西。

可以 use checkPermission() on PackageManager查看特定应用(由其应用ID,a.k.a。包名称标识)是否拥有特定权限。该方法返回PERMISSION_GRANTEDPERMISSION_DENIED

但是,请注意,在Android 6.0及更高版本的设备上,如果您检查的应用是使用22 {或更低版本的targetSdkVersion进行编译的,只要获得权限,checkPermission()将返回PERMISSION_GRANTED已在清单中请求(至少对normaldangerous权限,通常是与您有关的权限)。用户可以撤销权限"通过设置应用程序从这些应用程序,checkPermission()不报告该状态,事实上我知道无法确定用户是否以这种方式撤消了应用程序的权限。您可能会在Android 6.0之前添加此类权限控制机制的某些自定义ROM上看到类似的行为。