Rumah >Java >javaTutorial >Bagaimana untuk Meminta Kebenaran Lokasi Masa Jalan dengan Betul dalam Android?

Bagaimana untuk Meminta Kebenaran Lokasi Masa Jalan dengan Betul dalam Android?

Susan Sarandon
Susan Sarandonasal
2024-12-06 21:05:14279semak imbas

How to Properly Request Runtime Location Permission in Android?

Cara Meminta Kebenaran Lokasi pada Masa Jalan

Dalam fail Manifes, adalah penting untuk memasukkan kebenaran yang diperlukan untuk akses lokasi. Walau bagaimanapun, hanya menambah kebenaran pada manifes tidak akan mencukupi pada peranti yang menjalankan Android 6 atau lebih tinggi. Untuk mendapatkan kemas kini lokasi dengan jayanya, anda perlu meminta kebenaran semasa masa jalan. Berikut ialah panduan langkah demi langkah:

  1. Semak Status Kebenaran:

    • Gunakan ContextCompat.checkSelfPermission() untuk mengesahkan sama ada apl mempunyai akses kepada kebenaran yang diperlukan (dalam kes anda, Manifes.kebenaran.ACCESS_FINE_LOCATION).
  2. Minta Kebenaran (jika tidak diberikan):

    • Jika kebenaran tidak diberikan , gunakan ActivityCompat.requestPermissions(). Ini akan menggesa pengguna untuk memberikan atau menolak kebenaran.
  3. Kendalikan Keputusan Kebenaran:

    • Override onRequestPermissionsResult(). Kaedah ini akan menerima hasil permintaan kebenaran dan mengemas kini pengurus lokasi dengan sewajarnya.

    Dalam kod anda:

    • Anda menambah lokasi dengan betul kebenaran kepada manifes.
    • Anda menggunakan ContextCompat.checkSelfPermission() untuk menyemak status kebenaran, tetapi anda tidak meminta kebenaran jika ia tidak diberikan.
    • Untuk menyelesaikan isu ini, anda perlu meminta kebenaran lokasi menggunakan ActivityCompat.requestPermissions(), seperti yang ditunjukkan dalam contoh kod Java dan Kotlin yang dikemas kini yang disediakan dalam jawapan.
  4. Mulakan Kemas Kini Lokasi (jika kebenaran diberikan):

    • Selepas kebenaran diberikan, gunakan requestLocationUpdates() untuk menerima kemas kini lokasi.
  5. Jeda/Sambung Sambung Kemas Kini Lokasi:

    • Gunakan onPause() dan onResume() untuk menjeda dan menyambung semula kemas kini lokasi apabila aktiviti berada di latar belakang atau latar depan, masing-masing.

Atas ialah kandungan terperinci Bagaimana untuk Meminta Kebenaran Lokasi Masa Jalan dengan Betul dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn