这是我的代码:
private Bitmap getBitmap(Uri selectedimg) throws IOException {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 3;
AssetFileDescriptor fileDescriptor = null;
Log.d("selectedimg"," selectedimg = " + selectedimg);
fileDescriptor =
getActivity().getContentResolver().openAssetFileDescriptor(selectedimg, "r");
Bitmap original
= BitmapFactory.decodeFileDescriptor(
fileDescriptor.getFileDescriptor(), null, options);
return original;
}
在使用结果图像启动相机意图后,我保护了位图。 比我尝试将图像读入位图。 图像在那里,没有损坏。
我收到错误:
> 08-10 15:26:58.578 26729-26729/com.ebed.scannerod W/System.err: java.io.FileNotFoundException: Permission denied
08-10 15:26:58.578 26729-26729/com.ebed.scannerod W/System.err: at android.os.Parcel.openFileDescriptor(Native Method)
08-10 15:26:58.579 26729-26729/com.ebed.scannerod W/System.err: at android.os.ParcelFileDescriptor.openInternal(ParcelFileDescriptor.java:270)
08-10 15:26:58.579 26729-26729/com.ebed.scannerod W/System.err: at android.os.ParcelFileDescriptor.open(ParcelFileDescriptor.java:200)
08-10 15:26:58.579 26729-26729/com.ebed.scannerod W/System.err: at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:970)
08-10 15:26:58.579 26729-26729/com.ebed.scannerod W/System.err: at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:898)
08-10 15:26:58.579 26729-26729/com.ebed.scannerod W/System.err: at com.scanlibrary.PickImageFragment$override.getBitmap(PickImageFragment.java:159)
08-10 15:26:58.579 26729-26729/com.ebed.scannerod W/System.err: at com.scanlibrary.PickImageFragment$override.onActivityResult(PickImageFragment.java:130)
08-10 15:26:58.579 26729-26729/com.ebed.scannerod W/System.err: at com.scanlibrary.PickImageFragment$override.access$dispatch(PickImageFragment.java)
08-10 15:26:58.579 26729-26729/com.ebed.scannerod W/System.err: at com.scanlibrary.PickImageFragment.onActivityResult(PickImageFragment.java:0)
08-10 15:26:58.580 26729-26729/com.ebed.scannerod W/System.err: at android.app.Activity.dispatchActivityResult(Activity.java:6537)
08-10 15:26:58.580 26729-26729/com.ebed.scannerod W/System.err: at android.app.ActivityThread.deliverResults(ActivityThread.java:3772)
08-10 15:26:58.580 26729-26729/com.ebed.scannerod W/System.err: at android.app.ActivityThread.handleSendResult(ActivityThread.java:3819)
08-10 15:26:58.580 26729-26729/com.ebed.scannerod W/System.err: at android.app.ActivityThread.access$1400(ActivityThread.java:159)
08-10 15:26:58.580 26729-26729/com.ebed.scannerod W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1433)
08-10 15:26:58.580 26729-26729/com.ebed.scannerod W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
08-10 15:26:58.580 26729-26729/com.ebed.scannerod W/System.err: at android.os.Looper.loop(Looper.java:152)
08-10 15:26:58.581 26729-26729/com.ebed.scannerod W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5507)
08-10 15:26:58.581 26729-26729/com.ebed.scannerod W/System.err: at java.lang.reflect.Method.invoke(Native Method)
08-10 15:26:58.581 26729-26729/com.ebed.scannerod W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
08-10 15:26:58.581 26729-26729/com.ebed.scannerod W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
它说我没有权限这样做,但我在清单文件中声明了我需要的所有Premissions(Camera Read and Write)。我运行API 24。
我不知道我能做些什么来解决这个问题。
感谢您的时间。