3

我正在尝试开发一个 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/databases/browser.db" 但是我每次都需要这样做,我想在我的应用程序源代码中执行此操作,我还尝试了 Runtime.exec() 方法来执行 adb shell,实际上 History Eraser 应用程序可以擦除没有root权限的默认浏览器的历史,任何人都可以帮助我解决这个谜团。提前致谢。

4

1 回答 1

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());
于 2013-06-25T07:26:55.227 回答