[英]Can't get ACCESS_FINE_LOCATION permission in android
我想在android中獲得ACCESS_FINE_LOCATION和ACCESS_COARSE_LOCATION的權限,但是出於任何原因,它僅授予ACCESS_COARSE_LOCATION的權限。
我的活動:
final int PERMISSION_ALL = 1;
String[] PERMISSIONS = {ACCESS_FINE_LOCATION,ACCESS_COARSE_LOCATION};
if(!hasPermissions(this, PERMISSIONS)){
System.out.println("=========================================nottttt========================================================");
ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
}
@Override
public void onRequestPermissionsResult(int requestCode, String PERMISSIONS[], int[] grantResults) {
System.out.println("==================requesttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt");
switch (requestCode) {
case PERMISSION_ALL: {
System.out.println("lengthhhhhhhhhhhhhhhhhhhhhh"+PERMISSIONS.length);
for (int i = 0; i < PERMISSIONS.length; i++) {
String permission = PERMISSIONS[i];
if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
System.out.println(permission + "is alreadyyyyyyyyyyyyy grantedddddddddddddddd");
} else {
System.out.println(permission + "is not grantedddddddddddddddd");
}
return;
}
}
}
}
public static boolean hasPermissions(Context context, String[] permissions) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
for (String permission : permissions) {
if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
}
return true;
}
Android清單:
<user-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<user-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
啟動應用程序后,系統提示我允許訪問該位置,我選擇“是”,但未授予ACCESS_FINE_LOCATION。有人可以幫助我找到問題嗎?
一旦用戶授予其中一個權限的權限,另一個權限也將被授予。 您不能授予其中之一,也不能授予另一個。
ACCESS_FINE_LOCATION權限允許應用使用GPS和網絡位置提供程序。 但是,網絡提供商是一個粗略的位置提供商。 這就是為什么,如果您首先請求ACCESS_FINE_LOCATION,它將以合法方式請求ACCESS_COARSE_LOCATION權限
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.