我想创建一个文件来存储一些只能由我的应用程序访问的数据。外部用户不应该能够访问这个文件或对其进行任何更改。我将在文件中存储一个 key ,也许在需要时由应用程序访问。
最佳答案
使用 Environment.getDataDirectory(), http://developer.android.com/reference/android/os/Environment.html#getDataDirectory()
这给出了一个 File 对象,它是私有(private)的、特定于应用程序的数据目录的路径。其中创建的文件归您应用的用户 ID 所有,防止任何其他应用访问它们。
File myPrivateFile = new File(Environment.getDataDirectory(), context.getPackageName() + File.separator + "secret.txt");
请注意,如果设备已获得 root 权限,则一切皆有可能。根进程可以读取设备上的任何文件。你能做的最好的就是只为设备的用户存储信息。这样一来,如果它遭到破坏,只有一个用户帐户会受到破坏。换句话说,不要存储凭据、 key 、访问 token 等。这将允许恶意代理访问服务器,从而窃取其他用户的数据。
关于java - 应用程序的私有(private)文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9766273/