簡體   English   中英

無法在Android中獲得ACCESS_FINE_LOCATION權限

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM