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

Bal*_*ira 1 java permissions android

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

例如,如果我想检查我的设备中安装的 app1 是否被授予android.permission.WRITE_CONTACTS,我可以checkPermission用来在我的应用程序中检查它吗?我知道新版本的棉花糖允许用户撤销一些权限,为此我想检查一下

如果不允许,请建议替代方法。 这是关于 checkPermission 的更多信息

Com*_*are 6

PERMISSION_GRANTED是一个数字。具体来说,它的值为 0。您不能使用数字来检查任何内容。

可以 使用checkPermission()onPackageManager查看特定应用程序(由其应用程序 ID,又名包名称标识)是否拥有特定权限。该方法返回PERMISSION_GRANTEDPERMISSION_DENIED

但是,请注意,在 Android 6.0+ 设备上,如果您正在检查的应用程序是使用targetSdkVersion22 或更低的a 编译的,checkPermission()PERMISSION_GRANTED只要在清单中请求权限(至少是 fornormaldangerous权限,通常是那些关心你)。虽然用户可以通过“设置”应用程序从这些应用程序“撤消权限”,但该状态不会由 报告checkPermission(),而且我确实不知道用户是否通过这种方式从应用程序撤消了权限。您可能会在某些在 Android 6.0 之前添加此类权限控制机制的自定义 ROM 上看到类似行为。