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 Androidのバージョン6.0.1に
エラーログを投稿できますか? –
簡単なメモ - 書き込み権限を求める場合は、読み取り権限は必要ありません。 – slanecek
ありがとう@slanecek、私はちょうど私が言及したデバイスで、少なくとも、読み取りアクセス許可を削除しようとしましたが、それはアプリの設定で要求された権限を表示されません! – RominaV