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
コードに次のコードを追加します.
/**
         *       ,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->権限を選択->ストレージスペース権限を開く