- 此问题在此处已有答案**:
How permission can be checked at runtime without throwing SecurityException?(11个答案)
5年前关闭。
截至15天前,社区正在审查是否重新讨论这个问题。
是否有任何选项可以检查Android中的辅助功能权限状态,无论是否授予应用?
我两个都试过了(来自this post)
private boolean checkWriteExternalPermission()
{
String permission = Manifest.permission.BIND_ACCESSIBILITY_SERVICE;
int res = getContext().checkCallingOrSelfPermission(permission);
return (res == PackageManager.PERMISSION_GRANTED);
}
以及
PackageManager pm = context.getPackageManager();
int hasPerm = pm.checkPermission(
android.Manifest.permission.BIND_ACCESSIBILITY_SERVICE,
context.getPackageName());
if (hasPerm != PackageManager.PERMISSION_GRANTED) {
// do stuff
}
但是在这两种情况下,无论权限状态如何,结果都是否定的。即使服务正在使用权限,结果也是-1。
请查看评论以获得正确答案,因为问题关闭时无法接收答案。感谢abdu和Duna。
1条答案
按热度按时间ubof19bj1#
您可以使用以下代码检查应用的权限状态。(此处用于外部存储的写入权限)。
如果权限被撤消,则使用此覆盖方法