我创建了一个用作启动器的应用程序。在该应用程序中,我打开了各种其他应用程序。在该应用程序中,我想清除其他应用程序的所有数据(即登录详细信息、搜索历史记录),单击按钮即可删除。
PackageManager pm = getPackageManager();
Method[] methods = pm.getClass().getDeclaredMethods();
for (Method m:methods){
if(m.getName().equals("freeStorage")){
try{
long desiredFreeStorage = Long.MAX_VALUE;
m.invoke(pm,desiredFreeStorage,null);
} catch (Exception e) {
e.printStackTrace();
}
break;
}
}
使用上面的代码,我可以删除缓存,但无法删除其他应用程序的数据。
请给我一个解决方案。 抱歉我的英语不好。
最佳答案
这是正常行为。您无法通过您的应用程序删除属于其他应用程序的数据。包含数据的文件是私有(private)的,只能由拥有它们的应用程序访问或由应用程序共享。
例如,大多数应用程序都使用 SharedPreference
作为私有(private)文件来保存数据以供以后使用。因此,如果允许其他应用程序删除该数据,那是毫无意义的。
关于java - 从您的应用程序中清除所有应用程序的数据(启动器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48657416/