在我的应用中,我必须从数据文件夹中的文件中读取数据。但我不能这样做。我搜索了一下,但很多用户说你无法从数据文件夹中读取数据。我们看到Rootbrowser
可以从android私人文件夹文件中读取数据。我的问题是如何从data/misc
文件夹中读取文件?
答案 0 :(得分:2)
在我的应用程序中,我必须从数据文件夹中的文件中读取数据
如果在“数据文件夹”中,您指的是/data
或其下的任意目录,则除了根设备之外,您对大多数目录都没有读取权限。
我搜索过但很多用户说你无法从数据文件夹中读取数据
正确。
我们看到Rootbrowser可以从android私人文件夹文件中读取数据
如果“Rootbrowser”是指Root Browser,则该应用只能在有根设备上执行此操作。您可以通过阅读产品说明来说明:
Root Browser是root用户的终极文件管理器
答案 1 :(得分:0)
没有从任何文件夹中读取任何文件的解决方案(除非你的设备是root用户,即使这样,它可能依赖于设备),但很可能你的问题需要更具体的东西。例如,如果一个应用程序想要将数据传递给另一个应用程序,则可能。如果您需要阅读由您自己的应用程序创建的文件,它根本没问题。请询问有关您的特定问题的问题,而不是一般情况。
更新:根据评论中的讨论,结果是您使用了root设备,并且感兴趣的文件夹上的权限不允许每个人阅读它,这是关于访问策略的正常决定。如果您的应用只能在root手机上运行,那么您可以从https://stackoverflow.com/a/26654728/755804借用 sudoForResult()。
Runtime.getRuntime().exec("ls");
和sudoForResult("ls "+path)
之间的差异在于后一种情况ls
由su
执行(在 sudoForResult中通过Runtime.getRuntime().exec("su");
调用( ))因此具有超级用户权限。
或者,您可以尝试为每个人打开对这些文件夹的访问权限。这将需要su
,必须从您的程序完成,并且将难以测试,因为在第一次运行后,目录权限将已经更改。 OTOH,如果你设法通过访问权限使你的应用程序的目录可读,你可以取消根设备,仍然让你的应用程序工作。