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
<manifest ...> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> </manifest>
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!