私はこのコード行は、メソッドの内部で、私はAndroidの実行時のアクセス権をチェックしないこのメソッドを呼び出す前にあるアンドロイドスタジオ - セキュリティ例外の警告を削除
Location location = LocationServices.FusedLocationApi.getLastLocation(
mGoogleApiClient);
を介してユーザの位置を取得しています。アクセス許可がユーザーから利用可能な場合にのみ、このメソッドを呼び出します。コードは完璧に動作しています。
問題は、Android Studioではこの行にエラーが表示され、この関数を呼び出す前に既にチェックしたことを認識していないということです。
Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with `checkPermission`) or explicitly handle a potential `SecurityException`
今どのように私はこの警告を削除しますか?私は既にパーミッションをチェックしており、この警告を取り除くだけでもう一度チェックしたくありません。 @SuppressWarnings()を追加しようとしましたが、これに渡す正確な文字列はわかりません。 @SuppressWarnings({"all"})は機能しますが、明らかに推奨されていません。
この警告を削除するにはどうすればよいですか?
EDIT 1:これは私の正確なコードである -
private void checkPermissions() {
if (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED)
getLocation(); //Method called if I have permission
}
private void getLocation() {
//Android studio shows warning at this line.
Location location = LocationServices.FusedLocationApi.getLastLocation(
mGoogleApiClient);
}
しかし、私はのgetLocation内()メソッドを許可チェックを入れた場合、警告が消えます。 @SuppressWarnings({"MissingPermission"})は機能しませんでした。
EDIT 2:私は警告を抑制するための唯一の方法であることを発見した -
コードの特定の部分の上にこのコメントの追加 -
//noinspection ResourceType
またはこれを追加することを - あなたが探している
@SuppressWarnings({"ResourceType"})
私の編集した回答がうまく機能している場合は、それを合格とマークしてください。 – Renascienza