我正在尝试开发一个Android应用程序,可以删除默认浏览器的搜索历史而不需要生根,但我卡住了。这是我的源代码
File file = new File("data/data/com.android.browser/databases/browser.db");
try {
String content = "";
if(!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content);
bw.close();
Toast.makeText(MainActivity.this, "History Deleted From Default Browser", Toast.LENGTH_LONG).show();
System.out.println("Done");
} catch (IOException e) {
e.printStackTrace();
}
我知道浏览器的历史记录将存储在“browser.db”文件中,只有在命令提示符中通过adb shell更改browser.db文件的权限,我才能清除历史记录,例如“chmod 777 data / data / com.android.browser /数据库/ browser.db” 但我每次都需要这样做,我想在我的应用程序源代码中执行此操作,我还尝试使用Runtime.exec()方法执行adb shell,实际上History Eraser应用程序可以在没有root权限的情况下删除默认浏览器的历史记录,可以请帮助我解决这个谜团。在此先感谢。
答案 0 :(得分:9)
将以下权限添加到AndroidManifest.xml
:
<uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>
<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
然后当你想清除历史使用时:
Browser.clearHistory(getContentResolver());