正在创建一个应用程序,当您单击按钮时清除Internet缓存。我希望它拥有权限,您可以清除其他应用程序数据。我尝试了许多不同的代码,但找不到用于此目的的代码。是否有我需要的特殊许可,或者甚至可能。
我在MainActivity.java中尝试过这段代码,但似乎无法让它工作:
private void clearPreferences() {
try {
// clearing app data
Runtime runtime = Runtime.getRuntime();
runtime.exec("pm clear com.android.browser");
} catch (Exception e) {
e.printStackTrace();
}
}
任何帮助都会很棒。谢谢!
答案 0 :(得分:1)
要清除它,您只需删除其数据目录的内容即可。 SD上有2个位置,内部有2个位置。您可以清除SD上没有问题,只需使用Apache FileUtils中的Apache Commons,它具有递归删除目录的功能。内部目录需要root访问权限。或者是同一个用户。如果你制作了这两个应用程序,那么通过设置sharedUserId parameter确保它们是同一个用户应该没问题。如果没有,那么您的应用只能以root身份运行。 See this回答获取数据目录。
作为root用户的替代方案,您可以打开相关应用的应用信息页面,并告诉用户通过点击清除数据和手动清除应用数据。清除缓存按钮。