簡體   English   中英

Android:禁止方法調用警告

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM