我们已经构建了一个Android应用程序,用于收集数据(用于排球统计数据)。此应用程序创建一个数据文件,我们最终希望将其传输到台式计算机(Windows PC和Macintoshes)。
我们目前在默认应用程序目录(data / data / appname / files)中将数据写为简单字符流,并在创建每个数据文件时指定MODE_WORLD_READABLE。
问题是即使数据文件是MODE_WORLD_READABLE,我们想要用来传输数据的各种实用程序也看不到数据文件。我假设问题是他们可能具有对文件的读访问权,但是他们没有对存储文件的目录的读访问权。具体来说,我无法使用Android设备上的ES File Explorer应用浏览这些文件,当我将Android设备作为USB设备连接到PC或Macintosh时,我无法浏览到这些文件。
我是将文件写入外部目录的唯一解决方案,还是我在这里缺少关于将MODE_WORLD_READABLE与应用程序目录一起使用的内容?
答案 0 :(得分:1)
应用程序基目录的文件访问模式(通常类似于/data/data/com.package.app
)及其中的顶级目录(databases
,files
,cache
,... )是rwxrwx--x
。对于除应用程序本身之外的其他用户,相关部分为--x
,这意味着无法读取(浏览)目录,但可以遍历这些目录。因此,如果您确切知道要查找的内容(完整路径),则可以阅读MODE_WORLD_READABLE
个文件。
答案 1 :(得分:0)
我们目前将数据写成一个简单的字符流 默认应用程序目录(data / data / appname / files)并指定 我们创建每个数据文件时都有MODE_WORLD_READABLE。
AFAIK您无法访问应用程序沙箱中的文件(即/data/data/appname/files)。如果可能,您可能从未使用过内容提供商。
我在这里看到的唯一解决方案就是你想要实现的只有 Rooted Devices
才能实现