In the emulator (I use genymotion) it works fine, but when I run it on a real device (my phone is ASUS ZenFone Laser 5.0), throw a filenotfoundexception
java.io.FileNotFoundException: /storage/emulated/0/cam20160926_075819.jpg: open failed: EACCES (Permission denied)
imgBitmap = MediaStore.Images.Media.getBitmap (cr, selectedImage);
here is the onActivityResult () method
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode){ case CAMERA_REQUEST: if (resultCode == Activity.RESULT_OK){ Uri selectedImage = imageUri; getActivity().getContentResolver().notifyChange(selectedImage, null); ContentResolver cr = getActivity().getContentResolver(); Bitmap imgBitmap; try { imgBitmap = MediaStore.Images.Media.getBitmap(cr, selectedImage); accountPhoto.setImageBitmap(imgBitmap); } catch (IOException e) { e.printStackTrace(); Toast.makeText(getActivity().getApplicationContext(), "Something went wrong while taking a photo", Toast.LENGTH_LONG).show(); Log.e("Camera", e.toString()); } } } }
I read some related questions and solutions about these EACCES, and the problem seems to be in my resolution:
<uses-feature android:name="android.hardware.camera2" android:required="true"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Am I missing something? thanks for the answer
source share