Maison > Java > javaDidacticiel > Comment demander des autorisations de localisation d'exécution sur Android ?

Comment demander des autorisations de localisation d'exécution sur Android ?

Susan Sarandon
Libérer: 2024-12-14 12:58:11
original
460 Les gens l'ont consulté

How to Request Runtime Location Permissions in Android?

Comment demander une autorisation de localisation au moment de l'exécution

Dans votre code, vous vérifiez correctement les autorisations de localisation et gérez le cas où les autorisations ne sont pas accordé. Cependant, pour demander les autorisations au moment de l'exécution, vous devez utiliser ActivityCompat.requestPermissions.

Voici votre MainActivity corrigée :

public class MainActivity extends AppCompatActivity implements LocationListener {

    // ... (rest of your code)

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED ||
            ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, PERMISSION_REQUEST_CODE);
        } else {
            // Permissions already granted
            // ...
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);

        if (requestCode == PERMISSION_REQUEST_CODE) {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) {
                // Permissions granted
                // ...
            } else {
                // Permissions denied
                // ...
            }
        }
    }

    // ... (rest of your code)

}
Copier après la connexion

Où PERMISSION_REQUEST_CODE est une constante entière que vous pouvez définir pour référencer facilement la demande d'autorisation.

Supplémentaire Considérations

  • Assurez-vous d'ajouter les autorisations de localisation au fichier AndroidManifest.xml :
<manifest ...>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
</manifest>
Copier après la connexion
  • Si vous rencontrez ce problème dans une bibliothèque projet, assurez-vous de déclarer également les autorisations dans le fichier AndroidManifest.xml de la bibliothèque.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal