首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android:无法使用bufferedReader读取文件,而在亚行shell中运行的cat命令运行良好。

Android:无法使用bufferedReader读取文件,而在亚行shell中运行的cat命令运行良好。
EN

Stack Overflow用户
提问于 2017-05-26 05:22:07
回答 3查看 268关注 0票数 0

我试图在Android API=23中使用API=23读取一个系统文件,但是它给出了以下错误:打开失败: EACCES (权限拒绝)

该文件是只读的。另一方面,在亚行shell中运行的“cat”命令工作得很好。

另外,File.exists()为我的文件返回真,而File.canRead()则返回false是否与管理/根访问相关?亚行外壳是否允许根访问系统?

P.S.:我已授予应用程序读/写权限(为API 23)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-08-19 14:11:11

我想这个问题对我的案子来说是很独特的。这个文件是一个系统文件,我的应用程序没有被授予读取它的权限。在我将我的应用程序签署为系统应用程序后,这一问题得到了纠正。

其他可能的解决方案可能是,如果应用程序具有读取此类文件的根权限。

谢谢大家的建议和回答!

票数 0
EN

Stack Overflow用户

发布于 2017-05-26 05:27:43

Android为Android6.0 (Marshmallow)增加了新的权限模型。

http://www.captechconsulting.com/blogs/runtime-permissions-best-practices-and-how-to-gracefully-handle-permission-removal

因此,您必须检查Runtime权限:

什么是运行时权限?

在Android6.0 Marshmallow中,Google引入了一种新的权限模型,允许用户更好地理解应用程序可能请求特定权限的原因。而不是用户在安装时盲目地接受所有权限,而是提示用户接受在应用程序使用过程中变得必要的权限。

什么时候实施新模式?

在选择应用程序中的23版本之前,它不需要完全支持。如果您的目标是version 22或更低版本,您的应用程序将在安装时请求所有权限,就像在Marshmallow以下运行操作系统的任何设备上一样。

这些信息是从这里获取的:

请检查如何从此链接实现:

http://www.captechconsulting.com/blogs/runtime-permissions-best-practices-and-how-to-gracefully-handle-permission-removal

票数 0
EN

Stack Overflow用户

发布于 2017-05-26 05:40:53

如果您的文件存在但无法读取,请确保以下内容:

  • 许可。因为您可以像您说的那样读取其他文件,所以可能没有问题。
  • 这是而不是文件夹。请用file.isDirectory()检查一下。
  • 检查您的文件路径。例如,它不应该像这样开始:file:/.../home/storage//th (当您错误地添加两个破折号时)。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44194165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档