2016-08-22 3 views
0

私のアプリはターゲットリリースバージョン22を使用しています。manifestファイルにFINE_LOCATIONのアクセス権があります。 アンドロイド6.0.1でアプリを実行しているときに、現在の場所を表示しているマップビューで問題なく動作しています。 しかし、私は、ユーザーが「拒否」権限をアプリケーション設定から取得してから、アプリケーションがアクセス許可例外のためにクラッシュを開始する場合があります。ロケーションアクセスは設定から​​拒否します.SelfPermissionは常に返されます。許可(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未満のGranted/Denyの返品ステータスを返します

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; 
    } 
} 
関連する問題