【发布时间】:2013-01-08 13:09:37
【问题描述】:
在我正在制作的 Android 应用中,我希望能够以编程方式清除设备上所有应用的缓存。这个问题之前已经问过很多次了: Clearing app cache programmatically? Reflecting methods to clear Android app cache Clear another applications cache 每个人都说没有root是不可能的。
但是,显然情况并非如此。如果您查看 Google Play 中的 App Cache Cleaner、History Eraser、1Tap Cleaner、Easy History Cleaner 和无数其他类似的应用程序(所有这些都不需要 root),您会发现它们都可以做到这一点。因此,这是可能的,但我找不到任何公开的例子来做到这一点。
有人知道所有这些应用都在做什么吗?
谢谢
【问题讨论】:
-
你给开发者发邮件了吗?其中一位可能愿意泄露他们的代码。
-
您链接到的问题是关于清除个别应用程序的缓存。如果不持有仅适用于系统分区上安装的应用程序(例如,由 root 用户)或使用固件签名密钥签名的应用程序,这是不可能的。您引用的应用程序提供清除所有应用程序的缓存,而不是单个应用程序的缓存。出于难以理解的原因,可以在未经任何许可的情况下擦除所有应用程序的缓存,但通过 Android SDK 是不可能的。
-
@CommonsWare 实际上,为了清除缓存文件,您确实需要权限“android.permission.CLEAR_APP_CACHE”
-
@DavidWasser:啊,抱歉,我记错了。但是,
CLEAR_APP_CACHE是您可以持有的,而 delete-only-one-app's-cache 需要signature|system权限。 -
@CommonsWare 没问题。我们有时都会记错 ;-) 我不会反对你