Android 在本地保存文件,但防止它们显示在用户文件管理器中

Android 在本地保存文件,但防止它们显示在用户文件管理器中,android,cordova,cordova-3,cordova-plugins,Android,Cordova,Cordova 3,Cordova Plugins,使用PhoneGap 3.2和文件API,我正在下载一组图像以显示在应用程序中。我创建了一个名为“Appname”的文件夹,并将所有文件放在那里。在Android上,可以通过文件管理器访问此文件夹,在某些型号上,图像会显示在用户图像库中 是否可以在本地保存文件,但不允许在应用程序外部向用户显示这些文件?从技术上讲,不可以。尤其是当客户端具有root访问权限时 您可以尝试以下方法来缓解此问题: a) 将文件命名为以点(.)开头,以便将其识别为隐藏文件。(不过,配置为显示隐藏文件的文件管理器可以显示

使用PhoneGap 3.2和文件API,我正在下载一组图像以显示在应用程序中。我创建了一个名为“Appname”的文件夹,并将所有文件放在那里。在Android上,可以通过文件管理器访问此文件夹,在某些型号上,图像会显示在用户图像库中


是否可以在本地保存文件,但不允许在应用程序外部向用户显示这些文件?

从技术上讲,不可以。尤其是当客户端具有root访问权限时

您可以尝试以下方法来缓解此问题:

a) 将文件命名为以点(.)开头,以便将其识别为隐藏文件。(不过,配置为显示隐藏文件的文件管理器可以显示它)

b) 将文件存储在/data/data/your.app.packages路径中的某些数据库上,默认情况下,该路径仅可供应用程序访问。(根用户仍然可以看到它)

c) linux的把戏。创建一个文件,打开它,保留文件描述符,但删除该文件。通过这种方式,文件将从目录结构中删除,这样它就不会显示在FS层中(因此无法访问)。要使其永久化,请使用您持有的文件描述符创建链接(或深入
/proc
目录树,与
fd
下的文件建立链接)

既然这个技巧可以在linux上使用,我想它应该可以在Android上使用,但这可能有些过头了


d) 其他权宜之计包括加密、模糊处理等。但它们并不完全属于您要查找的类型。

您好,我目前正在执行步骤3,但我被卡住了,因为我需要在关闭文件描述符之前获取文件描述符指向的引用。任何帮助或指导都将不胜感激。