Android Studio – supprimer l’avertissement de sécurité d’exception

Je trouve l’emplacement de l’utilisateur via

Location location = LocationServices.FusedLocationApi.getLastLocation( mGoogleApiClient); 

Cette ligne de code se trouve dans une méthode et avant d’appeler cette méthode, je vérifie les permissions d’exécution d’Android. Seulement si la permission est disponible auprès de l’utilisateur, j’appelle cette méthode. Le code fonctionne parfaitement.

Le problème est que Android Studio affiche toujours une erreur sur cette ligne sans reconnaître que j’ai déjà vérifié avant d’appeler cette fonction.

 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` 

Maintenant, comment puis-je supprimer cet avertissement? J’ai déjà vérifié les permissions et je ne veux pas vérifier à nouveau pour supprimer cet avertissement. J’ai essayé d’append @SuppressWarnings () mais je ne connais pas la chaîne exacte à transmettre à ceci. @SuppressWarnings ({“all”}) fonctionne mais ce n’est évidemment pas recommandé.

Comment puis-je supprimer cet avertissement?

EDIT 1: Ceci est mon code exact –

 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); } 

Mais si je mets la vérification des permissions dans la méthode getLocation (), l’avertissement disparaît. @SuppressWarnings ({“MissingPermission”}) n’a pas fonctionné.

EDIT 2: J’ai découvert que le seul moyen de supprimer l’avertissement est –

Ajout de ce commentaire en plus de ce morceau de code particulier –

 //noinspection ResourceType 

ou en ajoutant ceci –

 @SuppressWarnings({"ResourceType"}) 

Vous recherchez (mis à jour pour améliorer la clarté):

 @Override @SuppressWarnings({"MissingPermission"}) public void onRequestPermissionsResult(int requestCode, @NonNull Ssortingng[] permissions, @NonNull int[] grantResults) { if (LOCATION_REQUEST_CODE == requestCode) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { lastLocation = LocationServices.FusedLocationApi.getLastLocation(googleApiClient); } } 

ÉDITÉ:

La règle de charpie correcte est MissingPermission , mais il semble y avoir un bogue qui la place mal à certaines personnes.

Donc, s’il vous plaît essayez @SuppressWarnings ({“ResourceType”}) aussi.

Si vous cherchez à ignorer cet avertissement, vous pouvez soit le faire en ligne:

 //noinspection MissingPermission Location lastLocation = FusedLocationApi.getLastLocation(locationClient); 

ou au niveau de la méthode:

 @SuppressWarnings({"MissingPermission"}) public void toggleGPS(boolean enableGPS) { ... } 

vous pouvez utiliser Android Studio Inspection pour générer @SuppressWarnings({"MissingPermission"}) pour votre méthode ou votre classe

android studio vérifier la permission