Androidプログラムエラー:Anroid 6.0権限問題java.io.FileNotFoundException: ……:open failed: EACCES (Permission denied)
1061 ワード
異常
java.io.FileNotFoundException:/storage/emulated/0/Video/ekwing_main_paren.apk(あなたのファイルパス):open failed:EACCES(Permission denied)
の原因となる
Android 6.0では、Protected Permissionに属する権限があります.このような権限はAndroid Manifestのみです.xmlでは本当に取得できないと宣言されています.また、コードで動的に取得し、権限許可をダイアログ・ボックスにポップアップさせる必要があります.ユーザーが「許可」をクリックすると、本当にこの権限を取得できます.
解決方法1
コードに次のコードを追加します.
解決方法2
上記のコードを書かない場合は、6.0の設定に直接適用し、APP->権限を選択->ストレージスペース権限を開く
java.io.FileNotFoundException:/storage/emulated/0/Video/ekwing_main_paren.apk(あなたのファイルパス):open failed:EACCES(Permission denied)
の原因となる
Android 6.0では、Protected Permissionに属する権限があります.このような権限はAndroid Manifestのみです.xmlでは本当に取得できないと宣言されています.また、コードで動的に取得し、権限許可をダイアログ・ボックスにポップアップさせる必要があります.ユーザーが「許可」をクリックすると、本当にこの権限を取得できます.
解決方法1
コードに次のコードを追加します.
/**
* ,Android 6.0 , , AndroidManifest ,
*/
if (Build.VERSION.SDK_INT >= 23) {
int REQUEST_CODE_CONTACT = 101;
String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
//
for (String str : permissions) {
if (this.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {
//
this.requestPermissions(permissions, REQUEST_CODE_CONTACT);
return;
}
}
}
解決方法2
上記のコードを書かない場合は、6.0の設定に直接適用し、APP->権限を選択->ストレージスペース権限を開く