2017-06-27 3 views
0

Android Mのため、アプリケーションにACCESS_COARSE_LOCATION権限が付与されているかどうかを確認しています。私の知る限り、Marshmallowよりもバージョンが低いデバイスはインストール時にすべての権限を自動的に付与します。デバイスは、私がテスト用に使用しています、すべてのアプリケーションのための場所への完全アクセスを無効にしているので、私は、コードのこの部分を追加した場合しかし、それはAndroid 5.1.1でACCESS_COARSE_LOCATIONが自動的に付与されない

if (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) 

5.1.1 Android上で falseを返し

がそれです?

+0

はで許可ACCESS_COARSE_LOCATIONですあなたのマニフェスト、ターゲットAPIはapi 23以上で? –

+0

マニフェストにあり、targetSdkVersionが25、minSdkVersionが15 –

+0

Hmm非常に奇妙です。私はもっ​​とコードなしで知ることはできませんが、あなたの周りの仕事はできるでしょう if(Build.VERSION.SDK_INT

答えて

0

実際にAndroidの最小SDKバージョン21-22つまり、5.0は許可を確認する必要はありませんが、私たちが別の携帯電話でアプリをテストする必要がある場合などです。最小限のsdkバージョン23で、つまりマシュマロで。あなたはあなたのアプリケーションの外部で許可をチェックする必要があります。

//requesting Permission 
private void requestingPermission(){ 
    if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_NETWORK_STATE)){ 
     //Exaplian here why you need this permission 
    } 
    //Ask for the permission 
    ActivityCompat.requestPermissions(this,new String[]{ 
      Manifest.permission.ACCESS_NETWORK_STATE, },STORAGE_PERMISSION_CODE); 
} 

今すぐ別の

@Override 
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 
    super.onRequestPermissionsResult(requestCode, permissions, grantResults); 

    //checking the request code of Permission request 
    if (requestCode == STORAGE_PERMISSION_CODE){ 
     if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){//Toast.makeText(getApplicationContext(),"Permission Granted",Toast.LENGTH_SHORT).show(); 
     }else{ 
      Toast.makeText(getApplicationContext(),"Permission Denied",Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 

いけない、あなたのアクティビティのonCreate方法の下に呼び出すことを忘れ追加Starting_Activityでのコードの下

write()メソッド

requestingPermission(); 
+0

ご回答ありがとうございますが、私はアクセス許可を要求する方法を知っています。私はなぜAndroid 5.1.1に自動的に許可が与えられないのか分かりません。 –

+0

@JakubGruber私は、Android 5.1.1では、権限を個別に処理する必要はないと言いました。 Marshmallow私たちはAndroid SDKを教えなければなりません。私たちのアプリでxyzパーミッションを使用するつもりです –

+0

はい、このアクセス許可は私の電話では許可されていません。それは –

関連する問題