gpt4 book ai didi

android - 清除 Marshmallow 以上操作系统版本的缓存

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:09:06 26 4
gpt4 key购买 nike

我想制作一个 Android 应用程序来清理其他应用程序的缓存。我已经想出如何为 Marshmallow 以下的 Android 版本做到这一点。

This是我在 Android Honeycom 及更高版本上使用的:

    if (isExternalStorageWritable()) {
final File externalDataDirectory = new File(Environment
.getExternalStorageDirectory().getAbsolutePath(), "/Android/data");

final String externalCachePath = externalDataDirectory.getAbsolutePath() +
"/%s/cache";

if (externalDataDirectory.isDirectory()) {
final File[] files = externalDataDirectory.listFiles();

for (File file : files) {
if (!deleteDirectory(new File(String.format(externalCachePath,
file.getName())), true)) {
Log.e(TAG, "External storage suddenly becomes unavailable");

return false;
}
}
} else {
Log.e(TAG, "External data directory is not a directory!");
}
} else {
Log.d(TAG, "External storage is unavailable");
}

但我在弄清楚如何为 Android 版本 Marshmallow 及更高版本执行此操作时遇到了问题。

市场上存在的其他缓存清理器是否能够通过获得可访问性许可或任何其他方式来执行此操作?

最佳答案

从 Android 6.0 (Marshmallow) 开始,任何普通应用都不允许清除其他应用的缓存。只有当您的应用程序是系统应用程序或由系统签名的同一证书签名时,您才能清除其他应用程序的缓存。但是有一个关于如何做到这一点的技巧。

您可以使用无障碍服务(您正确指出)来执行此操作。

据我所知,您可以显示缓存值,然后向用户询问可访问性权限,在授予权限后打开设置屏幕-->转到存储-->单击缓存按钮,然后按确定。

请记住,这只是一个 hack,可能会根据各种 OEM 和 Android 版本产生错误。

关于如何实现,this是探索如何使用无障碍服务的一个很好的例子。

此外,请记住,您需要获得 Google Play 的预先批准才能使用辅助功能,否则可能会从 Play 商店中删除该应用程序。在提供更新之前请务必获得许可,否则他们可能会暂停或终止您的应用程序。对此要非常小心。

关于android - 清除 Marshmallow 以上操作系统版本的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56206710/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com