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

Bagaimana untuk Meminta Kebenaran Lokasi Masa Jalan dalam Android?

Susan Sarandon
Susan Sarandonasal
2024-12-14 12:58:11461semak imbas

How to Request Runtime Location Permissions in Android?

Cara Meminta Kebenaran Lokasi pada Masa Jalan

Dalam kod anda, anda menyemak kebenaran lokasi dengan betul dan mengendalikan kes di mana kebenaran tidak diberikan. Walau bagaimanapun, untuk benar-benar meminta kebenaran semasa runtime, anda perlu menggunakan ActivityCompat.requestPermissions.

Inilah MainActivity anda yang telah diperbetulkan:

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)

}

Di mana PERMISSION_REQUEST_CODE ialah pemalar integer yang boleh anda tentukan untuk rujukan dengan mudah kebenaran itu permintaan.

Pertimbangan Tambahan

  • Pastikan anda menambah kebenaran lokasi pada fail AndroidManifest.xml:
<manifest ...>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
</manifest>
  • Jika anda menghadapi masalah ini dalam projek perpustakaan, pastikan anda mengisytiharkan kebenaran dalam perpustakaan Fail AndroidManifest.xml juga.

Atas ialah kandungan terperinci Bagaimana untuk Meminta Kebenaran Lokasi Masa Jalan 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