2012-10-19 140 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