【发布时间】:2011-01-05 15:09:02
【问题描述】:
我想编写一个实用程序,用户可以在其中选择一组已安装的应用程序并清除其数据缓存,就像您可以使用内置设置->应用程序设置屏幕和“清除缓存”按钮手动执行的方式一样.
如何访问每个应用拥有多少缓存数据并以编程方式清除这些缓存?
【问题讨论】:
我想编写一个实用程序,用户可以在其中选择一组已安装的应用程序并清除其数据缓存,就像您可以使用内置设置->应用程序设置屏幕和“清除缓存”按钮手动执行的方式一样.
如何访问每个应用拥有多少缓存数据并以编程方式清除这些缓存?
【问题讨论】:
这里给出的答案是错误的,有些市场应用程序具有程序化清除所有应用程序缓存功能。此外,文档中有以下内容:
public static final String CLEAR_APP_CACHE
自:Android 中的 API 级别 1 允许应用程序清除设备上所有已安装应用程序的缓存。 常数值:
android.permission.CLEAR_APP_CACHE
请注意“所有已安装的应用程序部分”,以及您不需要任何 root 访问权限或超出标准用户权限的特殊权限这一事实。
我在这里发帖是因为我要求交付物每 24 小时清除一次店内演示手机上的所有应用程序缓存,我正试图弄清楚如何正确使用它。我知道解决方案的一部分是获得此权限,我也知道如何在设备上查找所有已安装的应用程序,并且我正在努力能够真正删除缓存。我的问题是其他应用程序缓存被读取为不包含文件(尽管有内容),我怀疑是因为我没有读取权限来进行列表文件调用。
【讨论】:
普通的 SDK 应用程序无权访问,更不用说修改其他应用程序的缓存,就像它们无权破解您的文件一样。
这可能在您的应用程序以 root 身份运行的 root 手机上实现,在这种情况下,您必须根据应用程序的包名称手动构建路径。
【讨论】: