清除安卓浏览器历史记录

4

我正在为客户编写一款应用程序,该应用程序将有多个设备供客户查看和玩耍。他们希望能够定期清除浏览器历史记录,这样如果一个客户打开了不适当的网站,下一个客户来时就不会看到这个记录。

目前,我正在使用以下代码来清除历史记录和搜索记录:

            Browser.clearHistory(getContentResolver());
            Browser.clearSearches(getContentResolver());

这个方法可以正确清除浏览历史,但是所有已经打开的窗口(标签页)仍然保持开启状态。我该如何告诉浏览器关闭所有这些标签页,以便下次打开浏览器时仅加载起始页?
我注意到使用设备预装的任务管理器结束浏览器进程可以实现目的。那么,结束浏览器进程是唯一的方法吗?如果是的话,我应该如何结束/重新启动浏览器进程呢?我尝试过以下方法:
    am = (ActivityManager) getApplicationContext().getSystemService(Activity.ACTIVITY_SERVICE);
    am.killBackgroundProcesses("com.android.browser");

但这种方法似乎没有起到任何作用。 我确实有

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"></uses-permission>

在我的清单文件中,但是当我运行它并返回到浏览器时,它仍然停留在打开的选项卡上。该如何正确使用此权限所授予的权限?我更愿意找到一种除了任务终止之外的方法来使其工作,但目前我在所有方面都没有找到解决方法。

我正在寻找完全相同的东西。您在实现这一目标方面的进展和最终方向是什么? - Tom
@Tom 不幸的是,它从未有所进展,而且自从许多新设备包含 Chrome(另一种浏览器)以来,情况变得更糟了。由于这也超出了我的控制范围。 - FoamyGuy
1
谢谢更新!目前我正在尝试另一件事情。已经对设备进行了Root,看看是否可以删除/data/data/com.android.browser的内容。 - Tom
...这个有效了(我本来就预料到会有效)。 - Tom
如果你愿意,@Tom,请发布一个带有删除代码的答案。这将有助于未来的人们。 - FoamyGuy
3个回答

2

如果您的设备已经root,您可以使用下面的命令来清除应用程序的所有数据。我不确定这是否适用于每个设备,因为它取决于包管理器。

Runtime.getRuntime().exec("su -c /system/bin/pm clear com.android.browser");

1

我尝试通过ActivityManager关闭浏览器,它可以正常工作。我在HTC 2.2上测试过,效果非常好。

也许你也应该尝试一下:

am.killBackgroundProcesses("com.google.android.browser");

如果您的手机浏览器不在com.android.browser中,请尝试完成以下操作:com.android.browser.BrowserActivity

希望这可以帮到您!


好的,我刚刚在2.2设备上尝试了一下,它确实可以正常工作。也许这与只有2.3+有关。我尝试使用第三方任务管理器来停止它,而不是原装的那个,它显示已经杀死了浏览器。但当我重新打开时,选项卡仍然存在。 - FoamyGuy

0
与计算机浏览器类似,Android 浏览器会将您搜索的所有记录保存在设备上。如果您担心浏览器历史记录或不想在 Android 上留下任何记录,您可以在几分钟内删除所有浏览器历史记录。删除浏览器记录后,将删除您登录 Chrome 的所有缓存数据。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接