如何在应用程序中更改默认的Android浏览器主页?

时间:2012-03-01 21:35:39

标签: android browser

在我的应用中,是否可以以编程方式更改Android浏览器的主页网址?如果是这样,我怎么能做到这一点?

例如,如果您使用Android 2.3(我测试过的所有内容)运行此热门应用,它会将您的主页更改为http://www.searchmobileonline.com - https://market.android.com/details?id=goldenshorestechnologies.brightestflashlight.free

谢谢!

6 个答案:

答案 0 :(得分:5)

我自己没有尝试过,但是BrowserSettings有一个公共接口setHomePage:

public void setHomePage(Context context, String url) {
    Editor ed = PreferenceManager.
            getDefaultSharedPreferences(context).edit();
    ed.putString(PREF_HOMEPAGE, url);
    ed.commit();
    homeUrl = url;
}

它在BrowserBookmarksPage中使用如下:

BrowserSettings.getInstance().setHomePage(this, [URL]);

但是只能从该包中访问BrowserSettings类。因此,访问共享首选项可能更容易......?

MORE ...

这里真的不是在上课。也许可以使用一些本机代码访问XML文件,其中包含浏览器的首选项或其他类似的方式,但是...

  • 无论你做什么,这都将“围绕”安全 地点。您的应用应该无法更改该主页 浏览器(或它将在文档中)
  • 即使有可能找到一种方法(通过NDK或查找未记录的界面),它很可能会在某些时候停止使用某些新版本的Android,这可能不是您想要的。< / LI>
  • 我知道有些应用已经做到了,恕我直言,这很糟糕。并不意味着您的应用应该做同样的事情并让更多潜在用户感到沮丧。

答案 1 :(得分:3)

没有办法更改浏览器的主页网址。

com.android.browser打开/创建MODE_PRIVATE的偏好设置。因此文件的属性变为-rw-rw---- 浏览器应用程序的清单也没有sharedUserId属性。

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.browser">

该应用无法分享应用的偏好文件。

答案 2 :(得分:1)

这不能通过您的应用内部以编程方式完成。

修改:我下载了您提供的应用程序,它确实可以帮助您完成所需的工作。究竟是怎么做的,我不知道。我在网上找不到如何做到这一点。我很想知道是否有人对他们如何实现这一点有任何想法。

答案 3 :(得分:1)

我有一个意见: 也许您可以阅读浏览器的源代码并找到如下代码:

SharedPreferences prefs = mContext.getSharedPreferences(RECOVERY_PREFERENCES, Context.MODE_PRIVATE);

获取浏览器的SharedPreferences,然后找到设置主页的位置,进行更改。 这可能吗?

答案 4 :(得分:1)

我猜测应用程序开发人员没有在他的代码中写它来做到这一点。我认为他在他的应用程序中的11个广告sdks中的一个是造成它的。

他有

adserver.adview
adwhirl
amobee.onlinehapi
apperhand
google
inmobi.androidsdk
jumptap.adtag
mdotm.android.ads
millenialmedia.android
mobclix.android.sdk
zestadz.android

作为旁注,这很荒谬。

答案 5 :(得分:0)

我创作了名为My Home Page(https://play.google.com/store/apps/details?id=com.aac.myhomepage)的应用,我需要完成这项任务。我到处寻找可能无法找到这样做的方法,所以我最终使用了两种解决方法,在我看来这并不是很好的选择。

1)我为那些拥有root设备的人提供了一个root选项,我只需访问浏览器的SharedPreferences XML文件,然后使用正则表达式将主页的值换成所需的值。

2)将URL复制到剪贴板并告诉用户如何更改默认主页。

请注意,未经用户许可,我未使用root访问权限,也未经用户许可更改主页。这是应用程序的目的,如果用户没有明确这样做,主页就不会更改。

我最近注意到广告SDK正在执行此操作,但有些事情告诉我他们没有以适当的方式执行此操作而且我没有任何兴趣我