我试图在Android API=23中使用API=23读取一个系统文件,但是它给出了以下错误:打开失败: EACCES (权限拒绝)。
该文件是只读的。另一方面,在亚行shell中运行的“cat”命令工作得很好。
另外,File.exists()为我的文件返回真,而File.canRead()则返回false。是否与管理/根访问相关?亚行外壳是否允许根访问系统?
P.S.:我已授予应用程序读/写权限(为API 23)。
发布于 2017-08-19 14:11:11
我想这个问题对我的案子来说是很独特的。这个文件是一个系统文件,我的应用程序没有被授予读取它的权限。在我将我的应用程序签署为系统应用程序后,这一问题得到了纠正。
其他可能的解决方案可能是,如果应用程序具有读取此类文件的根权限。
谢谢大家的建议和回答!
发布于 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
发布于 2017-05-26 05:40:53
如果您的文件存在但无法读取,请确保以下内容:
file.isDirectory()检查一下。file:/...或/home/storage//th (当您错误地添加两个破折号时)。https://stackoverflow.com/questions/44194165
复制相似问题