Heim > Java > javaLernprogramm > Wie kann ich in Android zur Laufzeit Standortberechtigungen anfordern?

Wie kann ich in Android zur Laufzeit Standortberechtigungen anfordern?

Barbara Streisand
Freigeben: 2024-12-08 04:17:10
Original
370 Leute haben es durchsucht

How to Request Location Permissions at Runtime in Android?

Standortberechtigungen zur Laufzeit anfordern

Das Problem, mit dem Sie konfrontiert sind, besteht darin, dass Sie explizit Berechtigungen für den Standortzugriff anfordern müssen. Befolgen Sie diese Schritte, um das Problem zu beheben:

  1. Auf Berechtigungen prüfen: Verwenden Sie ActivityCompat.checkSelfPermission(), um festzustellen, ob die App über die erforderlichen Berechtigungen verfügt.
  2. Berechtigungen anfordern: Wenn keine Berechtigungen erteilt werden, verwenden Sie ActivityCompat.requestPermissions(), um den Benutzer dazu aufzufordern Berechtigung.
  3. Benutzerantwort verarbeiten: onRequestPermissionsResult() überschreiben, um die Antwort des Benutzers zu verarbeiten. Wenn die Berechtigung erteilt wird, führen Sie die standortbezogene Aufgabe aus.

Hier ist eine aktualisierte Version Ihres Codes, die die Berechtigungsanfragelogik enthält:

public class MainActivity extends AppCompatActivity implements LocationListener {

    private static final int REQUEST_LOCATION_PERMISSION = 10;

    // ... Other 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.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_LOCATION_PERMISSION);
            return;
        }

        // Perform location-related task if permission is granted
        // ...
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode) {
            case REQUEST_LOCATION_PERMISSION: {
                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    // Permission granted, perform location-related task
                    // ...
                } else {
                    // Permission denied
                }
            }
        }
    }

    // ... Other methods ...
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich in Android zur Laufzeit Standortberechtigungen anfordern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage