在Android 6.0(API級別23)及更高版本中,您需要在運行時動態請求權限。以下是請求權限的步驟:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
ContextCompat.checkSelfPermission()
方法來完成此操作。例如:if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// 訪問位置權限尚未授權
}
ActivityCompat.requestPermissions()
方法來請求權限。例如:final int REQUEST_LOCATION_PERMISSION_CODE = 1; // 用于跟蹤權限請求的唯一標識符
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_LOCATION_PERMISSION_CODE);
onRequestPermissionsResult()
方法以處理權限請求的結果。例如:@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == REQUEST_LOCATION_PERMISSION_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 訪問位置權限已被授權
} else {
// 訪問位置權限未被授權,您可以提示用戶原因并處理錯誤情況
}
}
}
請注意,對于危險權限(如訪問位置、相機或麥克風),Android系統可能會向用戶顯示一個對話框,要求他們授予權限。因此,在請求權限時,請確保您已正確處理這些情況。