1

我正在开发一个 android 应用程序以及其他功能,我需要在外部网络浏览器中打开一些 url。我可以以编程方式为此设置默认应用程序,因此用户将无法从可用浏览器列表中进行选择吗?我的意思是,我只想为我的应用程序设置默认浏览器,而不是为整个操作系统设置默认浏览器。

4

3 回答 3

3

是的,为此您可以强制您的应用程序始终只打开本机 android 浏览器。为此,您必须确定应用程序的启动ActivityBrowser如下所示:

Intent intent = new Intent();
intent.setComponent(new ComponentName("com.google.android.browser","com.google.android.browser.BrowserActivity"));
intent.setAction("android.intent.action.VIEW");
intent.addCategory("android.intent.category.BROWSABLE");
Uri uri = Uri.parse(url);
intent.setData(uri);
try
{
    startActivity(intent);
}
catch (Exception e)
{
   e.printStackTrace();
}
于 2012-09-25T14:28:17.990 回答
2

您可以将 .setPackage 用于意图: http: //developer.android.com/reference/android/content/Intent.html#setPackage (java.lang.String )。使用浏览器的包名(在其清单、属性中定义)调用它。

我正在使用类似的东西来启动 Google+ 应用程序以共享字符串:

Intent shareIntent = ShareCompat.IntentBuilder.from(getActivity())
           .setText("Dummy string to share")
           .setType("text/plain")
           .getIntent()
           .setPackage("com.google.android.apps.plus");

        startActivity(shareIntent);

在我的示例中,“com.google.android.apps.plus”是 Google+ 应用程序的包名称。

于 2012-09-25T14:23:21.640 回答
0

Browser 类的 Sharedpreference 是 "MODE_private" ,所以我们不能直接以编程方式访问 home_page 更改步骤,

如果我们想做,我们应该通过 Browser.java 开源代码来做,我们应该从那里得到一些想法。

于 2013-02-26T11:52:13.010 回答