【问题标题】:Android Web browser homepageAndroid 网络浏览器主页
【发布时间】:2012-09-03 08:45:13
【问题描述】:

我见过几个应用程序和广告网络,例如 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 我不太明白你的意思。我想通过代码设置浏览器的主页。不启动网址。
  • 你的意思是要设置默认首页?
  • 怀疑您是否能够更改其他程序设置,如果您这样做了,那肯定是个黑客。如果他们在某些浏览器中添加了这样的选项,它将由意图完成
  • 您有任何示例可以下载并检查它们是否更改了默认主页?我认为这是不可能的。

标签: android browser sharedpreferences android-contentprovider


【解决方案1】:

我支持Diane HackBorn (Google's Android Engineer) on this one:这应该是不可能的,因为这将是一个平台安全漏洞。

如果它碰巧是可能的,将通过某种黑客攻击(即:具有根访问权限的应用程序可以直接写入浏览器应用程序设置文件)。

【讨论】:

    【解决方案2】:

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

    我也知道他们这样做,但我无法在 SDK 中找到它。也许对android有更好理解的人可以看看它。我有一部 2.2 的 android 手机,没有 root 访问权限,他们设法更改了主页。

    【讨论】:

      【解决方案3】:

      有了root权限,你可以去/data/app/com.android.browser/shared_prefs

      你有共享首选项的 XML 文件。

      您只需要编辑PREF_HOMEPAGE xml 条目。

      没有 root 是不可能的,因为您需要 root 权限才能访问该目录。

      【讨论】:

        猜你喜欢
        • 2011-03-26
        • 2012-10-30
        • 2015-12-31
        • 1970-01-01
        • 2012-03-14
        • 2013-01-06
        • 2012-06-16
        • 2013-03-19
        • 1970-01-01
        相关资源
        最近更新 更多