简体   繁体   English

Android保存文件权限被拒绝

[英]Android Save File Permission denied

I would like to write a Bitmap Object on file.我想在文件上写一个Bitmap对象。 This is my code:这是我的代码:

File f = new File(path + "-bw.jpg");
OutputStream fileStream = new BufferedOutputStream(new FileOutputStream(path + "-bw.jpg"));
image.getBitmap().compress(Bitmap.CompressFormat.JPEG, 100, fileStream);
fileStream.close();

The following is the stacktrace:以下是堆栈跟踪:

1-11 09:56:05.553: D/dalvikvm(277): GC_EXTERNAL_ALLOC freed 385 objects / 15832 bytes in 69ms
11-11 09:56:05.733: D/dalvikvm(277): GC_EXTERNAL_ALLOC freed 32 objects / 34048 bytes in 51ms
11-11 09:56:05.923: E/Save error(277): /mnt/sdcard/Water lilies-bw.jpg (Permission denied)
11-11 09:56:05.923: E/Save error(277): java.io.FileNotFoundException: /mnt/sdcard/Water lilies-bw.jpg (Permission denied)
11-11 09:56:05.923: E/Save error(277):  at org.apache.harmony.luni.platform.OSFileSystem.openImpl(Native Method)
11-11 09:56:05.923: E/Save error(277):  at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:152)
11-11 09:56:05.923: E/Save error(277):  at java.io.FileOutputStream.<init>(FileOutputStream.java:97)
11-11 09:56:05.923: E/Save error(277):  at java.io.FileOutputStream.<init>(FileOutputStream.java:168)
11-11 09:56:05.923: E/Save error(277):  at java.io.FileOutputStream.<init>(FileOutputStream.java:147)
11-11 09:56:05.923: E/Save error(277):  at it.bwpp.activity.ConvertPictureActivity.convertImage(ConvertPictureActivity.java:75)
11-11 09:56:05.923: E/Save error(277):  at it.bwpp.activity.ConvertPictureActivity.access$6(ConvertPictureActivity.java:68)
11-11 09:56:05.923: E/Save error(277):  at it.bwpp.activity.ConvertPictureActivity$1.onClick(ConvertPictureActivity.java:58)
11-11 09:56:05.923: E/Save error(277):  at android.view.View.performClick(View.java:2408)
11-11 09:56:05.923: E/Save error(277):  at android.view.View$PerformClick.run(View.java:8816)
11-11 09:56:05.923: E/Save error(277):  at android.os.Handler.handleCallback(Handler.java:587)
11-11 09:56:05.923: E/Save error(277):  at android.os.Handler.dispatchMessage(Handler.java:92)
11-11 09:56:05.923: E/Save error(277):  at android.os.Looper.loop(Looper.java:123)
11-11 09:56:05.923: E/Save error(277):  at android.app.ActivityThread.main(ActivityThread.java:4627)
11-11 09:56:05.923: E/Save error(277):  at java.lang.reflect.Method.invokeNative(Native Method)
11-11 09:56:05.923: E/Save error(277):  at java.lang.reflect.Method.invoke(Method.java:521)
11-11 09:56:05.923: E/Save error(277):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-11 09:56:05.923: E/Save error(277):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-11 09:56:05.923: E/Save error(277):  at dalvik.system.NativeStart.main(Native Method)
11-11 09:56:05.923: I/save image(277): End save image...

Where is the error?错误在哪里? Thanks!谢谢!

我认为您忘记向您的 AnroidManifest.xml 添加android.permission.WRITE_EXTERNAL_STORAGE权限。

It's a 10-year-old question.这是一个10年前的问题。 Things have changed since then.从那以后情况发生了变化。

Declaring permissions in the manifest file is not enough now.现在在清单文件中声明权限是不够的。 you need to request permissions at runtime.您需要在运行时请求权限。

Even following permission is obsolete now.即使遵循许可现在也已过时。

android.permission.WRITE_EXTERNAL_STORAGE android.permission.WRITE_EXTERNAL_STORAGE

Refer to full documentation here.请参阅此处的完整文档

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM