在Android设备上访问应用程序私有目录中的MODE_WORLD_可读文件

在Android设备上访问应用程序私有目录中的MODE_WORLD_可读文件,android,directory,Android,Directory,我们已经构建了一个Android应用程序,用于收集数据(排球统计数据)。该应用程序创建了一个数据文件,我们最终希望将其传输到桌面计算机(Windows PC和Macintoshes) 目前,我们在默认应用程序目录(data/data/appname/files)中以简单字符流的形式写入数据,并在创建这些数据文件时指定模式为“世界可读” 问题是,即使数据文件是MODE_WORLD_可读的,我们想要用来传输数据的各种实用程序也看不到数据文件。我假设问题是,他们可能对文件具有读取权限,但对存储文件的目

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

目前,我们在默认应用程序目录(data/data/appname/files)中以简单字符流的形式写入数据,并在创建这些数据文件时指定模式为“世界可读”

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

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

目前,我们将数据作为一个简单的字符流写入 默认应用程序目录(data/data/appname/files)并指定 当我们创建这些数据文件时,模式\世界\是可读的

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

我在这里看到的唯一解决方案是,您想要实现的目标只能在根设备上实现

目前,我们将数据作为一个简单的字符流写入 默认应用程序目录(data/data/appname/files)并指定 当我们创建这些数据文件时,模式\世界\是可读的

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


我在这里看到的唯一解决方案是,您只可以在根设备上实现应用程序基本目录(通常类似于
/data/data/com.package.app
)和其中的顶级目录(
数据库
文件
缓存
,…)的文件访问模式is
rwxrwx--x
。对于应用程序本身以外的其他用户,相关部分是
--x
,这意味着目录不能被读取(浏览),但可以被遍历。因此,如果您确切知道要查找的内容(完整路径),您可以读取
模式\u WORLD\u可读的
文件。

应用程序基本目录(通常类似于
/data/data/com.package.app
)和其中的顶级目录(
数据库
文件
缓存
,…)is
rwxrwx--x
。对于应用程序本身以外的其他用户,相关部分是
--x
,这意味着目录不能被读取(浏览),但可以被遍历。因此,如果您确切知道要查找的内容(完整路径),您可以读取
MODE\u WORLD\u READABLE
文件。

那么
MODE\u WORLD\u READABLE
标志的用途是什么?那么
MODE\u WORLD\u READABLE
标志的用途是什么?我们的软件不允许需要根设备(这是一个原则问题,也是因为我们不能这样销售)。这也不是我们想要建立“内容提供商”的情况,因为我们实际上希望将数据传输到台式机/笔记本电脑系统。我们使用getExternalStoragePublicDirectory返回的目录路径解决了此问题。这些文件夹中的文件是可普遍访问的,并且是我们所知的问题的最佳解决方案。我们的软件要求根设备是不可接受的(这是一个原则问题,也是因为我们不能这样销售)。这也不是我们想要建立“内容提供商”的情况,因为我们实际上希望将数据传输到台式机/笔记本电脑系统。我们使用getExternalStoragePublicDirectory返回的目录路径解决了此问题。这些文件夹中的文件都是可普遍访问的,是解决我们所知问题的最佳解决方案。