我正在开发一个 android 应用程序以及其他功能,我需要在外部网络浏览器中打开一些 url。我可以以编程方式为此设置默认应用程序,因此用户将无法从可用浏览器列表中进行选择吗?我的意思是,我只想为我的应用程序设置默认浏览器,而不是为整个操作系统设置默认浏览器。
问问题
7277 次
3 回答
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();
}
于 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 回答