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 11 打开失败:EACCES(权限被拒绝)

打开失败:EACCES(权限被拒绝)ANDROID 11

Android kotlin:即使在授予权限后也获得 EACCES(权限被拒绝)

引起:android.system.ErrnoException:绑定失败:EACCES(权限被拒绝)

Android HTTP POST 请求错误 - 套接字 EACCES 失败(权限被拒绝)

BitmapFactory:无法解码流:java.io.FileNotFoundException:打开失败:Android Q 上的 EACCES(权限被拒绝)