android – Marshmallow app权限撤销通知?

参见英文答案 > Android Marshmallow Callback when user revokes permissions from settings ?                                    1个

在Android 6.0(Marshmallow)中,即使从应用程序内部授予权限,用户也可以撤消特定的应用程序权限.我知道我可以使用ContextCompat.checkSelfPermission()检查权限.但是,当用户撤销我的应用程序的权限时,是否有办法让我的应用程序得到通知,而无需使用ContextCompat.checkSelfPermission()重复检查?也许广播/意图或类似的东西?

在此先感谢您的帮助.

最佳答案 如果您的应用需要危险权限,则每次执行需要该权限的操作时,都必须检查是否拥有该权限.用户总是可以自由撤销权限,因此即使应用程序昨天使用了权限,也不能认为它今天仍然拥有该权限.

要检查您是否具有权限,请调用ContextCompat.checkSelfPermission()方法.例如,此代码段显示了如何检查活动是否具有写入日历的权限:

// Assume thisActivity is the current activity
int permissionCheck = ContextCompat.checkSelfPermission(thisActivity,
        Manifest.permission.WRITE_CALENDAR);

如果应用程序具有权限,则该方法返回PackageManager.PERMISSION_GRANTED,应用程序可以继续操作.如果应用程序没有权限,则该方法返回PERMISSION_DENIED,并且应用程序必须明确要求用户许可.

点赞