卸载后清除内部存储

时间:2017-07-16 07:00:08

标签: java android

当用户卸载我的应用程序时,我需要能够清除应用程序的内部存储目录。我怎么能这样做?

我正处于构建安全应用程序的测试阶段,该应用程序需要在应用程序首次安装到用户手机时由管理员设置ID。 ID文件不能在外部存储器中,因为我不想要任何篡改。

如果管理员向用户提供了错误的ID,他们将无法通过立即卸载应用来解决此问题。我已经尝试卸载应用程序(并清除缓存等)以清除ID数据。重新安装应用程序后,文件仍然存在,因此无法更改ID号。

我将文件保存到我的应用程序的主内部文件目录中,如果这有帮助的话。

IDFile = new File(context.getFilesDir(),"ID_Data.txt");

2 个答案:

答案 0 :(得分:0)

无法删除内部存储空间,应用程序在卸载时无法进行回调,因此无法完成任务。

但它应该适用于外部存储:对外部存储上的文件使用getExternalFilesDir()和/或getExternalCacheDir()(" sdcard")。卸载应用程序时会自动删除这些目录。 (source

您可以考虑另一种方法 - 使用仅存储在您的代码中的密钥加密应用程序存储的文件,因此只有应用程序才能进行解密,并且在卸载时 - 其余文件将保持加密状态。

想法#2

删除旧安装的数据(如果已重新安装)

  1. 启动您的应用后,请检查是否有偏好" first_run",如果它是空的 - 请创建一个当前时间。
  2. 如果已经有这样的偏好,您需要检查来自旧安装的安装是否:检查actual install time
  3. 如果您的偏好小于安装时间:删除所有旧文件。

答案 1 :(得分:0)

在清单中将AutoBackup指定为“false”

android:allowBackup="false"

https://developer.android.com/guide/topics/data/autobackup.html