我明白了为什么Android Studio显示MissingPermission
警告。
调用需要权限,该权限可能会被用户拒绝:代码应显式检查以查看权限是否可用(带有checkPermission)或显式处理潜在的SecurityException少...(⌘F1)
如果存在带有@RequiresPermission
注释的方法,则需要检查权限。因此,为了避免警告,我需要这样做:
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.PERMISSION) == PackageManager.PERMISSION_GRANTED) {
methodThatNeedsAPermission();
}
现在,这是一个很长的条件检查代码。此外,我希望我的代码干净,我想提取检查以将业务逻辑和与UI / Context相关的Android代码分开,所以我想要:
public void startDoingSomething() {
if (hasPermission()) {
methodThatNeedsAPermission();
}
}
...
public boolean hasPermission() {
return ActivityCompat.checkSelfPermission(this,
Manifest.permission.PERMISSION) == PackageManager.PERMISSION_GRANTED;
}
但是,Android Studio仍然显示警告。
当然,我可以使用@SuppressLint("MissingPermission")
禁止显示警告,但为什么要这么做呢? 我正在检查权限。
是否有解决此问题的干净方法?我将添加到hasPermission()
方法中的某种注释,以便Android Studio知道我正在检查权限?
答案 0 :(得分:0)
我遇到这样的情况,解决方案是遵循这条路
文件>设置>编辑器>检查> Android单击向下指针
棉绒点击向下指示器>正确性点击向下指示器
然后在“消息”下向下滚动到“缺少权限”,取消选中该框
点击应用,然后确定
皮棉很棒,但并不总是正确的