java.io.FileNotFoundException:/storage/emulated/0/DCIM/Camera/b6badecd-32a9-48a2-b0fe-25b0bfbc5d0f.
プロジェクトでネット上の画像を携帯電話のローカルに保存した場合、画像の保存に失敗しました.このような原因が発生した場合、以下の原因になる可能性があります.
Android 6.0では、Protected Permissionに属する権限があります.このような権限はAndroid Manifestのみです.xmlでは本当に取得できないと宣言されています.また、コードで動的に取得し、権限許可をポップアップ・ダイアログ・ボックスに表示する必要があります.ユーザーが「許可」をクリックすると、本当にこの権限を取得できます.
1.インベントリファイルに対応する権限がありません:
2.上記のコードを書かない場合は、6.0の設定に直接適用し、APP->権限を選択->ストレージスペース権限を開く
3.動的権限の追加:
または
Android 6.0では、Protected Permissionに属する権限があります.このような権限はAndroid Manifestのみです.xmlでは本当に取得できないと宣言されています.また、コードで動的に取得し、権限許可をポップアップ・ダイアログ・ボックスに表示する必要があります.ユーザーが「許可」をクリックすると、本当にこの権限を取得できます.
1.インベントリファイルに対応する権限がありません:
2.上記のコードを書かない場合は、6.0の設定に直接適用し、APP->権限を選択->ストレージスペース権限を開く
3.動的権限の追加:
/**
* ,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;
}
}
}
または
// 6.0 CAMERA RECORD_AUDIO
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(PhotoDetailActivity.this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED
|| ContextCompat.checkSelfPermission(PhotoDetailActivity.this, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED
|| ContextCompat.checkSelfPermission(PhotoDetailActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED
|| ContextCompat.checkSelfPermission(PhotoDetailActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED
|| ContextCompat.checkSelfPermission(PhotoDetailActivity.this, Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(PhotoDetailActivity.this, new String[]{
Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO
, Manifest.permission.WRITE_EXTERNAL_STORAGE
, Manifest.permission.READ_EXTERNAL_STORAGE
, Manifest.permission.READ_SMS}, 101);
}
}