1

我们已经构建了一个用于收集数据(用于排球统计数据)的 Android 应用程序。此应用程序创建一个数据文件,我们最终希望将其传输到台式计算机(Windows PC 和 Macintoshes)。

我们目前将数据作为简单字符流写入默认应用程序目录(data/data/appname/files),并在创建每个数据文件时指定 MODE_WORLD_READABLE。

问题是即使数据文件是 MODE_WORLD_READABLE,我们想用来传输数据的各种实用程序也看不到数据文件。我认为问题在于他们可能对文件具有读取权限,但对存储文件的目录没有读取权限。具体来说,我无法使用 Android 设备上的 ES 文件资源管理器应用程序浏览文件,并且当我将 Android 设备作为 USB 设备连接到 PC 或 Macintosh 时,我无法浏览文件。

是我将文件写入外部目录的唯一解决方案,还是我在这里缺少关于将 MODE_WORLD_READABLE 与应用程序目录一起使用的东西?

4

2 回答 2

1

应用程序基目录(通常类似于/data/data/com.package.app)和其中的顶级目录(databasesfilescache、...)的文件访问模式是rwxrwx--x. 对于应用程序本身以外的其他用户,相关部分是--x,这意味着无法读取(浏览)目录但可以遍历它们。MODE_WORLD_READABLE因此,如果您确切知道要查找的内容(完整路径),则可以读取文件。

于 2013-01-10T11:49:22.023 回答
0

我们目前将数据作为简单字符流写入默认应用程序目录(data/data/appname/files),并在创建每个数据文件时指定 MODE_WORLD_READABLE。

AFAIK 您无法从应用程序沙箱访问文件(即 /data/data/appname/files)。如果可能,那么您可能从未使用过内容提供程序。

我在这里看到的唯一解决方案是您想要实现的任何目标都只能在Rooted Devices上实现

于 2012-06-09T02:28:04.580 回答