2016-07-31 6 views
0

を働いていないことができ:https://developer.android.com/training/permissions/requesting.htmlは、私は、実行時に要求許可を許可することができるように、このリンクにチュートリアルに従う必要があり、実行時における要求許可が

、それが動作していない、私は同じコードをコピーして、異なるアクセス権「ACCESS_FINE_LOCATIONと「

活動

int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION); 
if (permissionCheck != PackageManager.PERMISSION_GRANTED) { 


    if (ActivityCompat.shouldShowRequestPermissionRationale(this, 
      Manifest.permission.ACCESS_FINE_LOCATION)) { 

     DialogUtils.showDialogMessage(this, getString(R.string.error), 
       getString(R.string.error_location_permission_not_granted), getString(R.string.ok), getString(R.string.cancel), new OnClickListener() { 
        @Override 
        public void onClick(View view) { 

        /*ContextCompat.requestPermissions(ItemDetailsActivity2.this, 
          new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 
          MAP_PERMISSION_REQUEST_CODE);*/ 
        } 
       }, null); 

    } else { 

     ActivityCompat.requestPermissions(this, 
       new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 
       MAP_PERMISSION_REQUEST_CODE); 
    } 
} 

ののonCreateメソッドで

に従い、これはコールバックであるように私のコード方法

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

    switch (requestCode) { 
     case MAP_PERMISSION_REQUEST_CODE: { 

      if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 

       initalizeMap(); 
      } else { 

       DialogUtils.showDialogMessage(this, getString(R.string.error), getString(R.string.error_location_permission_not_granted), getString(R.string.ok), null); 
      } 
      return; 
     } 
    } 
} 

、これは私と一緒に間違っている何が起こっているか

compileSdkVersion 23 
buildToolsVersion '23.0.3' 
minSdkVersion 15 
targetSdkVersion 15 

は、誰も私に教えてくださいすることができ、私のビルド構成がありますか?

EDIT

私はマニフェストとGradleのファイルの両方に23にtargetSdkVersionを変更し、それは私に次のような画面を提供します私のアプリを実行して、私は許す押したときに、長い時間のために私に黒い画面を与え、何もしないでください

あなたは今問題が何であるか教えてください。将来的には

enter image description here

+0

はい、アンドロイドバージョン6.0.1 –

答えて

2

、手段は「それが動作していない」ものを詳細に説明してください。

この場合、「動作していません」とは、「ユーザーに許可を与えるダイアログが表示されていません」ということです。これは、targetSdkVersion15に設定されているため、23以上に設定されていないためです。 targetSdkVersion15にすると、インストール時にすべてのアクセス許可に同意する必要がある従来のアクセス許可のサポートが必要であると言われます。dangerousprotectionLevelのアクセス許可が含まれます。

+0

のデバイスで実行していますので、targetSdkVersionを23に変更することをおすすめしますか? –

+0

@AmiraElsayedIsmail:なぜ15に設定されているのか分かりません。実行時アクセス許可を有効にするには、少なくとも23に引き上げる必要があります。しかし、コードに加えて他に変更が必要な場合があります一度それをする。 JavaDocsで[16と23の間の 'VERSION_CODES'](https://developer.android.com/reference/android/os/Build.VERSION_CODES.html)を見直す必要があります。 – CommonsWare

+0

私の編集を確認してください。 –

関連する問題