我正在开发一个Android应用程序以及其他功能,我需要在外部Web浏览器中打开一些网址。我可以以编程方式为其设置默认应用程序,因此用户将无法从可用浏览器列表中进行选择吗?我的意思是,我只想为我的应用设置默认浏览器,而不是整个操作系统。
答案 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开源代码,我们应该从那里得到一些想法。