Android 5(HTC) EACCES(权限被拒绝)
Posted
技术标签:
【中文标题】Android 5(HTC) EACCES(权限被拒绝)【英文标题】:Android 5(HTC) EACCES (Permission denied) 【发布时间】:2015-08-28 04:28:20 【问题描述】:应用无法在应用拥有的目录中的android 5(HTC HTC6525LVW os version: 5.0.1)
外部存储上创建folder/file
。
父文件夹由[getExternalFilesDirs(String type)][1]
方法返回。
Sdcard
已安装。
其他人有这个问题或建议如何解决它?
(很遗憾我没有这个设备来测试它)
编辑:从一位用户那里我知道,在此错误之前,她加密了 sdcard,然后对其进行了格式化。
【问题讨论】:
你应该用不是HTC的手机再试一次一个 android 的东西,或者如果它是一个 HTC 的东西。 您是否尝试从与调用getExternalFilesDirs(String)
的类相同的包中的类创建文件夹/文件?
@helleye 是的,同样的包
您是否尝试过在另一台装有 v5.0.1 的设备上运行?一般来说,您在哪些设备和 Android 版本上成功(以及没有)运行了您的应用?
@helleye 问题仅在我的问题中指定的设备上。
【参考方案1】:
关于导致它的一些潜在想法:
如果手机在连接到计算机时以 USB 存储模式运行,您仍然可以正常部署/调试,但写入操作会失败
您缺少权限:在清单文件中,您应该检查是否有 <permission name=”android.permission.WRITE_EXTERNAL_STORAGE” >
权限位置错误:确保您的权限标签(在清单中)位于应用程序的外部
写入data
文件夹可能会导致此类问题,因此请确保您写入的是sdcard
而不是data
这是我能想到的一切。希望对你有帮助:)
【讨论】:
感谢您的回答,但在这种情况下,这些观点都不正确。 抱歉没有帮助。没有那么多事情要做:/【参考方案2】:返回在外部存储上保存应用程序文件的目录的路径。如果当前未安装外部存储,则返回 null,因此无法确保路径存在;当它可用时,您需要再次调用此方法。
另一个选项是您可以检查外部存储是否可用:
String state = Environment.getExternalStorageState();
File filesDir;
// Make sure it's available
if (Environment.MEDIA_MOUNTED.equals(state))
// We can read and write the media
filesDir = getExternalFilesDir(null);
else
// Load another directory, probably local memory
filesDir = getFilesDir();
【讨论】:
【参考方案3】:我有同样的问题,但找到确切的解决方案希望这个答案对你有帮助
//Create Folder
File folder = new
File(Environment.getExternalStorageDirectory().toString()+"/Aqeel/Images");
folder.mkdirs();
//Save the path as a string value
String extStorageDirectory = folder.toString();
//Create New file and name it Image2.PNG
File file = new File(extStorageDirectory, "Image2.PNG");
【讨论】:
【参考方案4】:为您的 manifest.xml 文件添加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
【讨论】:
我已经拥有这两个权限,即使对于 getExternalFilesDirs,也不需要权限。 自Android KitKat起,调用getExternalFilesDirs()方法不需要任何权限。以上是关于Android 5(HTC) EACCES(权限被拒绝)的主要内容,如果未能解决你的问题,请参考以下文章
Android kotlin:即使在授予权限后也获得 EACCES(权限被拒绝)
引起:android.system.ErrnoException:绑定失败:EACCES(权限被拒绝)
Android HTTP POST 请求错误 - 套接字 EACCES 失败(权限被拒绝)
BitmapFactory:无法解码流:java.io.FileNotFoundException:打开失败:Android Q 上的 EACCES(权限被拒绝)