以编程方式为活动设置默认浏览器

时间:2012-09-25 14:19:23

标签: android web

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

3 个答案:

答案 0 :(得分:3)

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

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();
}

答案 1 :(得分:1)

您可以使用.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+应用程序的包名称。

答案 2 :(得分:0)

Browser类的共享偏好是“MODE_private”,因此我们无法以编程方式直接访问home_page更改步骤,

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