安卓网页浏览器主页

8
我已经看到很多应用程序和广告网络(如startapp)通过代码更改Android网络浏览器的主页。他们是如何做到的?
我已经查看了startapp SDK,但没有找到它们更改主页的部分。
我也查看了com.android.browser.BrowserSettings中的BrowserSettings。在BrowserSettings中,有一个称为setHomepage(Context, String)的接口,可以用来设置主页。
public void setHomePage(Context context, String url) {
    Editor ed = PreferenceManager.
            getDefaultSharedPreferences(context).edit();
    ed.putString(PREF_HOMEPAGE, url);
    ed.commit();
    homeUrl = url;
}

我对Java/Android不是很了解,如果有错误请指出:由于setHomepage()没有被声明为静态的,因此无法从其他活动中调用,所以我不能使用它。
我看不到在共享首选项中应用任何模式,这意味着默认情况下会采用私有模式,并且我不能编辑共享首选项或者?
有些人说可能可以通过contentProvider/Resolver实现。 这里是链接到BrowserSettings.java。
非常感谢任何帮助和想法 :)

@AndersMetnik,我不太明白你的意思。我想通过代码设置浏览器的主页,而不是启动一个URL。 - Anonym..
1
你不可能更改其他程序的设置,如果你这样做肯定是黑客行为。 如果他们在某些浏览器中添加了这样的选项,那么它将通过意图完成。 - Anders Metnik
1
你有没有可以下载的示例,以便我检查它们是否更改了默认主页?我认为这是不可能的。 - Akash Kava
@AkashKava 是的,请看这个链接:https://play.google.com/store/apps/details?id=ch.wanddstudios.startapp - Anonym..
@Anonym..:您在此处提供的应用程序不会更改运行Android 4.1的Nexus S上浏览器或Chrome的主页。 - CommonsWare
显示剩余6条评论
3个回答

3
我赞同 Diane Hackborn (Google的Android工程师) 的观点: 这不应该是可能的,因为这将是平台安全漏洞。
如果真的有可能发生,那只能通过某种黑客手段实现(例如:具有root访问权限的应用程序可以直接写入浏览器应用程序设置文件) 。

1

我看到你提到了startapp。我已经查看了他们反编译的SDK,但是我找不到有关“更改主页部分”的任何信息。

此外,我知道他们确实这样做,但我在SDK中找不到它。也许对Android有更好理解的人可以看一下。我有一个没有root访问权限的Android手机,他们成功地更改了主页。


0

通过root权限,您可以进入/data/app/com.android.browser/shared_prefs目录

在那里,您可以找到共享首选项的XML文件。

您只需要编辑PREF_HOMEPAGE xml条目即可。

如果没有root权限,则无法进行此操作,因为您需要root权限才能访问该目录。


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