[英]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.