2014-10-27 23 views
0

我想修復我的Android應用程序,以顯示12秒的視頻片段,並且可以點擊按鈕轉到爲每個特定片段構建的網頁。然後,恢復到Starplayer(monoboom.co)應用程序。使用特定瀏覽器鏈接到網頁

我的問題是...如何指定Firefox作爲瀏覽器使用。也許資源管理器或Chrome。

然後會有一個Flash視頻和很多有趣的東西與每個特定的預覽相關,但這不是重點。

當一個包含144張12fps圖像和一個按鈕的jpeg精靈表格可以看到更多,然後撤退(當然還有一個「Next!」按鈕),我該如何指定瀏覽器?

回答

0

This回答你的問題。

鍵/相關信息:

要做到這一點上使用Opera Mini作爲一個例子瀏覽器打開:

String packageName = "com.opera.mini.android"; 
String className = "com.opera.mini.android.Browser"; 
Intent internetIntent = new Intent(Intent.ACTION_VIEW); 
internetIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
internetIntent.setClassName(packageName, className); 
startActivity(internetIntent); 

其他瀏覽器,你可以找到通過執行以下操作的包和類名:

  • 連接Android手機與PC
  • 開放的Android logcat的
  • 推出從手機

在Android的logcat的瀏覽器,你會看到這樣的事情:CMP = COM:

07-22 14:06:14.662: INFO/ActivityManager(148): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.opera.mini.android/.Browser } 

類的名字將在 '議定書' 屬性所示進行。 opera.mini.android/.Browser

在這種情況下,包名稱是com.opera.mini.android,類名是com.opera.mini.android.Browser。

例I(噶亨特)活性的類中寫道,如果你是使用一個按鈕打開它:

package com.company.name; 

import android.view.View; 
import android.view.View.OnClickListener; 
import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 


public class ActivityName extends Activity { 

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     openOpera(); 
    } 

    public void openOpera() { 

     final Context context = this; 

     button = (Button) findViewById(R.id.buttonid); 

     button.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View argument1) { 

       String packageName = "com.opera.mini.android"; 
       String className = "com.opera.mini.android.Browser"; 
       Intent internetIntent = new Intent(Intent.ACTION_VIEW); 
       internetIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
       internetIntent.setClassName(packageName, className); 
       startActivity(internetIntent); 

      } 

     }); 

    } 
0

在我看來,這是更好地讓用戶選擇時所使用的瀏覽器打開網頁或鏈接。

可以廣播的意圖(與你希望它去的鏈接),像這樣:

String url = "";//your url 
Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setData(Uri.parse(url)); 
startActivity(intent); 

來源:Link1Link2

回答你的問題,雖然,我認爲這是可能的。我做了一些快速研究,我看到this answerThis answer較短,但可能滿足您的需求。基本上,你將創建一個意圖,像這樣:

Intent intent = getPackageManager() 
    .getLaunchIntentForPackage("browser.package.name"); 
String url = "";//your url 
intent.setData(Uri.parse(url)); 
startActivity(intent); 

對於包名,火狐包名是:

org.mozilla。火狐

我得到這個從他們的Google Play page

谷歌Chrome瀏覽器的包名稱是:

com.android.chrome

從他們 Google Play page

獎金

另外: Opera Mini:D

com.opera.mini.android

從他們Google Play page

對於默認的Android瀏覽器:

com.google.android.browser或com.android.browser

我從this answer

現在在啓動你的意圖之前,我們必須檢查瀏覽器是否安裝。我們可以做到這一點,像這樣:(我這個基礎上從here too

public void launchABrowserForUrl(String url) { 
    PackageManager packageManager = getPackageManager(); 

    // Might be better declared as constants somewhere safer, 
    // But for the sake of simplicty, declared here 
    String[] browserPackageNames = { 
     "org.mozilla.firefox", 
     "com.android.chrome", 
     "com.google.android.browser", 
     "com.android.browser" 
    } 

    for (int i = 0; i < browserPackageNames.length; i++) { 
     Intent intent = getPackageManager() 
      .getLaunchIntentForPackage(browserPackageNames[i]); 

     List<ResolveInfo> appsThatCanLaunchThisIntent = packageManager 
      .queryIntentActivities(intent, 0); 

     if (appsThatCanLaunchThisIntent.size() > 0) { 
      intent.setData(Uri.parse(url)); 
      startActivity(intent); 

      return; 
     } 
    } 

    // Code reached here, meaning for some reason no browser was detected 
    // Pop an error message or something 
} 
+0

謝謝你這麼多的信息,我會看看我能去上班,但我一定要減少資源使它更快。 – 2014-10-28 21:07:48

+0

快樂我可以幫忙。如果您需要澄清/解釋,請隨時再評論。歡迎到BTW計算器:) – Keale 2014-10-28 23:28:27

+0

謝謝你的歡迎... – 2014-10-31 18:52:03

相關問題