2012-10-19 172 views
3

我可以通过以下方式打开我的本地HTML文件与Android浏览器中打开本地HTML文件:如何在默认浏览器

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(webPageUri, "text/html"); 
intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity"); 
startActivity(intent); 

和它的作品。不过,我想开我的本地HTML文件中默认的浏览器不 specifing:

intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity"); 

有没有一种办法来吗?

编辑:

如果我删除setClassName正如你提到的,它在HtmlViewer打开(它不是一个默认浏览器)。 如果我那样做:

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setData(webPageUri); 
startActivity(intent); 

我得到:ActivityNotFoundException

+0

你的意思是你想要删除intent.setClassName行吗?它应该是安全的,因为如果有一个默认浏览器,那么系统会启动它,否则系统将弹出一个可用浏览器/ html浏览器列表,并让用户选择使用哪一个。 –

+0

也许与你的问题无关,但更确切地说,你应该添加一个像这样的适当的类别“intent.addCategory(Intent.CATEGORY_BROWSABLE);” –

+0

只是不指定它。我不明白这是一个问题 – njzk2

回答

0

只需卸下setClassName()线和你设置去。

这将启动默认浏览器,如果它是手机中唯一的浏览器。如果有多个,用户将不得不选择一个。

+0

它不起作用,如果我删除它在HtmlViewer中打开的setClassName。如果我这样做: Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(webPageUri); startActivity(intent); 我得到ActivityNotFoundException – user1723095

1

只需使用:

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(webPageUri, "text/html"); 
startActivity(intent); 

这会给用户安装的浏览器可供选择的列表。如果只有一个浏览器,那么将会启动该浏览器。

+0

它不起作用,如果我删除它在HtmlViewer中打开的setClassName。如果我这样做: Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(webPageUri); startActivity(intent); 我得到ActivityNotFoundException – user1723095