2010-06-28 67 views
12

我一直在試圖找出如何創建一個意圖,打開用戶的首選瀏覽器,而不指定URL。我知道如何通過給特定的URL像這樣打開它:Android意圖打開用戶的首選瀏覽器

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 
intent.setData(android.net.Uri.parse("http://www.google.com")); 
context.startActivity(intent); 

我不想打開瀏覽器,特別任何頁面,只需設定主頁或任何網頁的用戶是在去年。我曾考慮過在應用程序中查找設置的主頁,但您無法使用默認的瀏覽器應用程序進行設置,因爲它是私人的。有沒有人知道一種方法來做到這一點?

回答

1

用戶指定的主頁URL將存儲在他們使用的瀏覽器應用程序的首選項中。使用Android的「沙箱」應用程序模型,除非應用程序具有允許訪問的內容提供程序,否則無法訪問此應用程序。另外,內容提供商在瀏覽器應用程序上會有所不同,您將很難覆蓋那些確實存在的內容。

您是否嘗試打開嘗試通過JavaScript使用更新用戶主頁URL的網頁?

+0

不,我還沒有嘗試過這種方法,因爲我主要是想利用意圖的。我不是一個Web開發人員,但我會看看它!是否有任何有用的JavaScript API可以進入主頁? – 2010-06-28 17:59:16

+0

我已經找到了一種方法來檢索瀏覽器的主頁,並使用JavaScript訪問瀏覽器的主頁,但沒有任何運氣。我認爲這是不可能的。有人關心證明我錯了。 – 2010-06-29 20:09:08

9

我是這樣做的:

String packageName = "com.android.browser"; 
String className = "com.android.browser.BrowserActivity"; 
Intent internetIntent = new Intent(Intent.ACTION_VIEW); 
internetIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
internetIntent.setClassName(packageName, className); 
mHomeActivity.startActivity(internetIntent); 

如果你有沒有主頁設置,它會(至少在Android 2.1系統)打開一個空白頁。

2

這是一個遲到的回答,不過貌似這個功能是API 15提供:

Intent browser = Intent.makeMainSelectorActivity(
     Intent.ACTION_VIEW, 
     Intent.CATEGORY_APP_BROWSER); 

    startActivity(browser); 

Docs for makeMainSelectorActivity

5
  Uri uri = Uri.parse("www.google.com"); 
      Intent intent = new Intent(Intent.ACTION_VIEW,uri); 
      // Create and start the chooser 
      Intent chooser = Intent.createChooser(intent, "Open with"); 
      startActivity(chooser); 

此代碼創建一個意圖打開用戶指定的瀏覽器。

+3

URl應該有「http://」,否則意圖不會被識別 – 2013-07-31 04:50:47

0

請參閱本文的詳細信息implicit intent in android

  Intent sendIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.maidofknowledge.com")); 
      Intent chooser = Intent.createChooser(sendIntent, "Choose Your Browser"); 
      if (sendIntent.resolveActivity(getPackageManager()) != null) { 
       startActivity(chooser);