Heim >Java >javaLernprogramm >Wie kann ich Laufzeitstandortberechtigungen in Android anfordern?

Wie kann ich Laufzeitstandortberechtigungen in Android anfordern?

Susan Sarandon
Susan SarandonOriginal
2024-12-14 12:58:11461Durchsuche

How to Request Runtime Location Permissions in Android?

So fordern Sie eine Standortberechtigung zur Laufzeit an

In Ihrem Code prüfen Sie korrekt, ob Standortberechtigungen vorhanden sind, und behandeln den Fall, in dem keine Berechtigungen vorhanden sind gewährt. Um die Berechtigungen jedoch tatsächlich zur Laufzeit anzufordern, müssen Sie ActivityCompat.requestPermissions verwenden.

Hier ist Ihre korrigierte MainActivity:

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)

}

Wobei PERMISSION_REQUEST_CODE eine ganzzahlige Konstante ist, die Sie definieren können, um sie einfach zu referenzieren die Erlaubnisanfrage.

Zusätzlich Überlegungen

  • Stellen Sie sicher, dass Sie die Standortberechtigungen zur Datei AndroidManifest.xml hinzufügen:
<manifest ...>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
</manifest>
  • Wenn dieses Problem in einer Bibliothek auftritt Stellen Sie beim Erstellen eines Projekts sicher, dass Sie die Berechtigungen auch in der Datei AndroidManifest.xml der Bibliothek deklarieren.

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

Stellungnahme:
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