2016-08-22 100 views
0

我的應用程序使用的是目標發佈版本22.我已經提到manifest文件中的FINE_LOCATION權限。 當我在android 6.0.1上運行我的應用程序時,它在我顯示當前位置的地圖視圖中工作正常。 但是,當用戶「拒絕」來自應用程序設置的權限,然後應用程序由於權限異常而開始崩潰時,出現了問題。位置訪問拒絕設置,checkSelfPermission返回總是授予(0) - Android

當我使用下面的代碼

if ((ContextCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED)) 
        ActivityCompat.requestPermissions(activity, new String[] { Manifest.permission.ACCESS_FINE_LOCATION }, REQUEST_LOCATION_PERMISSION); 
      } 

但這個代碼總是返回PackageManager.PERMISSION_GRANTED。 有人可以幫助解決這個問題嗎?

我已經通過這些鏈接不見了 - Understanding the Android 6 permission method Request Permission at Runtime for Android Marshmallow 6.0

+0

您在Androidmainfest中使用了什麼? –

+0

Pankaj

回答

0

它通過使用解決的PermissionChecker。 PermissinChecker返回狀態授予/拒絕,即使構建版本小於23

if(Build.VERSION.SDK_INT >= 23){ 
    int permissionStatus = PermissionChecker.checkSelfPermission(context, permission); 
    if(permissionStatus != PackageManager.PERMISSION_GRANTED){ 
     ActivityCompat.requestPermissions(context, new String[] { Manifest.permission.ACCESS_FINE_LOCATION }, 101); 
     return false; 
    } 
} 
相關問題