Android例外:java.io.IOException:打开失败:EACCES(权限被拒绝)

srs*_*hit 24 permissions camera android denied ioexception

出于某些奇怪的原因,我不断遇到不同类型的Android设备的问题,用于将捕获的图像保存在设备存储上.

这里是详细的错误日志,实际上是什么.

java.io.IOException: open failed: EACCES (Permission denied)
at java.io.File.createNewFile(File.java:940)
at com.parkhya.pick_for_shareAflash.HomeActivity.resizeImage(HomeActivity.java:456)
at com.parkhya.pick_for_shareAflash.HomeActivity.onActivityResult(HomeActivity.java:393)
Caused by: libcore.io.ErrnoException: open failed: EACCES (Permission denied)
at java.io.File.createNewFile(File.java:933)
Run Code Online (Sandbox Code Playgroud)

虽然,所有其他Android应用程序,如Instagram和其他人,都可以保存设备上的相机点击图像.任何人,请你建议,为了我的应用程序,我应该怎么做,将相机图片保存在SD卡中.

Jit*_*yay 22

请添加允许应用程序写入外部存储的权限.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Run Code Online (Sandbox Code Playgroud)

允许应用程序从外部存储读取.

任何声明WRITE_EXTERNAL_STORAGE权限的应用程序都会被隐式授予此权限.

从API级别19开始强制执行此权限.在API级别19之前,不会强制执行此权限,并且所有应用程序仍有权从外部存储读取.您可以通过在运行Android 4.1或更高版本的设备上的"设置"应用中的"开发者"选项下启用"保护USB存储"来强制执行权限来测试您的应用.


Sme*_*eet 22

这可能对你有所帮助.在sdcard上写文件时我遇到同样的问题.我已经设置了写入文件所需的所有权限,但我使用了如下文件对象:

错误:

File myFile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile()+fileName);
Run Code Online (Sandbox Code Playgroud)

正确:

File myFile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile(), fileName);
Run Code Online (Sandbox Code Playgroud)

这意味着道路错了.


小智 0

我找到的解决方案是

编辑模拟器 1. 转到 android 虚拟设备管理器,然后编辑模拟器 2. 为受尊重的模拟器设置 100 MB 的 Sd 卡,然后说“确定” 3. 保存并关闭模拟器并启动 4. 保存的路径是单击 DDMS mnt/sdcard /yourfilename 它对我有用,应用程序没有给出错误并且正在工作