我是否可以在我的应用程序中使用checkPermission (String permName, String pkgName)
来检查授予权限的其他应用程序?
例如,如果我想检查我的设备中安装的app1是否已授予android.permission.WRITE_CONTACTS
,是否可以使用checkPermission
在我的应用中检查?
我知道新版本的marshmallow允许用户撤销一些权限,因为我想检查它
如果不允许,请建议替代方法。 This more information about checkPermission
答案 0 :(得分:4)
PERMISSION_GRANTED
是一个数字。具体而言,it has a value of 0。你不能用数字来检查任何东西。
您可以 use checkPermission()
on PackageManager
查看特定应用(由其应用ID,a.k.a。包名称标识)是否拥有特定权限。该方法返回PERMISSION_GRANTED
或PERMISSION_DENIED
。
但是,请注意,在Android 6.0及更高版本的设备上,如果您检查的应用是使用22 {或更低版本的targetSdkVersion
进行编译的,只要获得权限,checkPermission()
将返回PERMISSION_GRANTED
已在清单中请求(至少对normal
和dangerous
权限,通常是与您有关的权限)。用户可以撤销权限"通过设置应用程序从这些应用程序,checkPermission()
不报告该状态,事实上我知道无法确定用户是否以这种方式撤消了应用程序的权限。您可能会在Android 6.0之前添加此类权限控制机制的某些自定义ROM上看到类似的行为。