如何在安卓SD卡中隐藏文件?

9

我正在创建一个包含数据库的android应用程序,需要将其隐藏(用户无法访问)在SD卡中。请问有人知道如何实现吗?

6个回答

11
任何存储在SD卡上的文件都可以被手机上运行的应用程序和挂载了SD卡的用户(包括在手机中和其他情况下)访问。
您可以更改文件属性使其“隐藏”,但仍然很容易被发现。没有办法使像SD卡这样的公共分区上的文件以您所描述的方式“安全” - 用户始终可以复制、删除并潜在地更改文件。
解决您的问题的最佳方法是探索加密数据库记录以安全记录它的方法。您无法防止用户删除或复制该文件,但应该能够让他们难以从中读取数据或修改内容。

如果我进行加密,解密文件也会保存在SD卡中。因此应用程序的大小必须加倍。有什么想法吗?(数据库文件大小为17 MB) - arams
1
为什么解密后的文件也会在SD卡上?那加密还有什么意义呢?加密后,应该删除未加密的版本。17MB并不算太大,因此在加/解密时,在RAM中保存临时副本不会有问题。 - Mawg says reinstate Monica

8

对于一个简单的解决方案,只需在db文件名前加上. (像.dbfile)。这将在基于Linux的系统上隐藏文件,包括Android。

我假设您想要隐藏文件以防止用户意外删除/更改它。


我希望该文件对用户不可见,因为该数据库文件是安全的(文件大小为17 MB +,因此我将其创建在SD卡中)。用户没有复制、删除或更改的权限。 - arams
为了检测变化,请添加身份验证标签。 - tuergeist

3

只需以“点”开头命名文件,例如“.myFolder/.myfile”。


3

无法按您要求保护SD卡。


1
你可以创建一个以点(.)开头的文件夹,例如(.dbfiles)在Android中将这些文件夹视为配置文件夹,并且不会在应用程序(如图库、音乐播放器等)中显示这些文件夹的内容。您可以使用高级文件浏览器(如Es File Explorer)查看这些文件夹。

0

你不能使用SD卡!内部应用数据分区是你的选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接