2016-07-24 8 views
1

に拒否権を取得しますまた、ドキュメントのコードを試してみました。は、私が実際に有効であるWRITE_EXTERNAL_STORAGEためPERMISSION_DENIEDを取得していますAndroidのM

private void requestWritePermission() { 
    // Here, thisActivity is the current activity 
    if (ContextCompat.checkSelfPermission(this, 
      Manifest.permission.WRITE_EXTERNAL_STORAGE) 
      != PackageManager.PERMISSION_GRANTED) { 
      ActivityCompat.requestPermissions(this, 
        new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 
        PERMISSIONS_REQUEST_WRITE_EXTERNAL); 
      // PERMISSIONS_REQUEST_WRITE_EXTERNAL is an 
      // app-defined int constant. The callback method gets the 
      // result of the request. 
    } else { 
     startImagePicker(); 
    } 
} 

@Override 
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { 
    switch (requestCode) { 
     case PERMISSIONS_REQUEST_WRITE_EXTERNAL: { 
      // If request is cancelled, the result arrays are empty. 
      if (grantResults.length > 0 
        && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
       // permission was granted 
       startImagePicker(); 
      } else { 
       // permission denied 
       showErrorDialog(getString(R.string.change_profile_image_permission_denied)); 
      } 
      return; 
     } 
    } 
} 

いずれの場合も、READ_EXTERNAL_STORAGEは有効になっていますが、WRITE_EXTERNAL_STORAGEは有効になっていません。マニフェストの

関連部分:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    package="com.nothereal.packagename" 
    android:minSdkVersion="16" 
    android:targetSdkVersion="23" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 

のGradleの関連部分:

android { 
    compileSdkVersion 23 
    buildToolsVersion '23.0.3' 
    defaultConfig { 
     minSdkVersion 16 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
     // Enabling multidex support. 
     multiDexEnabled true 
    } 
} 

dependencies {  
     compile 'com.android.support:multidex:1.0.0' 
     compile 'com.android.support:appcompat-v7:23.0.3' 
     compile 'com.android.support:design:24.1.0' 
     compile 'com.android.support:support-v13:24.1.0' 
     compile 'com.android.support:recyclerview-v7:23.0.3' 
     compile 'com.android.support:support-v4:23.0.3' 
     compile 'com.android.support:cardview-v7:23.0.3' 

テストネクサス5X And​​roidのバージョン6.0.1に

+0

エラーログを投稿できますか? –

+0

簡単なメモ - 書き込み権限を求める場合は、読み取り権限は必要ありません。 – slanecek

+0

ありがとう@slanecek、私はちょうど私が言及したデバイスで、少なくとも、読み取りアクセス許可を削除しようとしましたが、それはアプリの設定で要求された権限を表示されません! – RominaV

答えて

0

この問題は、より多くのを持っによるものでしたマニフェストを持つ1つのモジュールより:私は自分のアプリケーションモジュールのマニフェストでパーミッションを持っていましたが、別のモジュールもそれを持っていました。

他のモジュールからそれを削除すると、そのトリックが実行されました。

関連する問題