[英]Android: Suppress Warning on method call
我正在尝试做一种检查android权限的方法。 但是,当我将其命名为“缺少权限”警告时。
这是我的代码的简化:
public void lintTestMethod(){
if(isPermissionGranted()) {
requiresLocationPermission();
}
}
public boolean isPermissionGranted(){
return true;
}
@RequiresPermission(anyOf = {Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION})
public void requiresLocationPermission(){
}
我尝试添加:
@SuppressLint("MissingPermission")
public boolean isPermissionGranted(){
return true;
}
但这不起作用(我也尝试过使用SuppressWarning)。
理想情况下,我不想不必修改lintTestMethod方法。
有谁知道如何处理吗?
通过阅读检查许可权的皮棉代码( 代码 ),我找到了解决问题的方法。 解决方案是将我的方法命名为“ isPermissionGranted”:“ check * Permission”。 这并不是我一直在寻找的解决方案,但它确实有效。 如果有人有更好的方法,我仍然很感兴趣。
这是代码中有趣的部分:
String name = node.astName().astValue();
if ((name.startsWith("check") || name.startsWith("enforce")) && name.endsWith("Permission")) {
mChecksPermission = true;
mDone = true;
}
您将抑制放置在错误的位置:
单条语句抑制:
public void lintTestMethod(){
if(isPermissionGranted()) {
//noinspection MissingPermission
requiresLocationPermission();
}
}
方法范围抑制:
@SuppressWarnings("MissingPermission")
public void lintTestMethod(){
if(isPermissionGranted()) {
requiresLocationPermission();
}
}
可以使用Android Studio快速修复菜单来完成。
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
将此添加到您的AndroidManifest.xml文件中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.