Trong giả lập (tôi sử dụng genymotion) nó hoạt động tốt, nhưng khi tôi chạy nó trên một thiết bị thực tế (điện thoại của tôi là ASUS ZenFone Laser 5.0) ném một FileNotFoundExceptionFileNotFoundException: mở thất bại: EACCES (Permission denied)
java.io.FileNotFoundException: /storage/emulated/0/cam20160926_075819.jpg: mở thất bại: EACCES (Permission denied)
imgBitmap = MediaStore.Images.Media.getBitmap (cr, selectedImage);
đây là phương pháp onActivityResult()
@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());
}
}
}
}
tôi đọc một số câu hỏi có liên quan và các giải pháp về EACCES này, và có vẻ như vấn đề là về việc cho phép tôi:
<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" />
tôi thiếu một cái gì đó? cảm ơn vì đã trả lời
bạn sử dụng phiên bản SDK và Android nào? –
Tôi đang ở marshmallow 6.0 bây giờ api lvl 23. và phiên bản sdk tối thiểu của tôi trong ứng dụng của tôi là api lvl 18 –
vì vậy tôi không thể thấy yêu cầu cấp phép của bạn về Đọc và ghi bộ nhớ ngoài? –