1. 程式人生 > >Android系統下開啟指定的瀏覽器

Android系統下開啟指定的瀏覽器

        工作中遇到一個問題,就是在Android系統上希望將url通過指定的瀏覽器開啟。一般情況下如果系統有幾個瀏覽器並存,那麼系統會提示使用者選擇哪個瀏覽器開啟URL,這種情況下使用者可能就直接放棄打開了,十分影響URL的點選率。

傳統方式開啟瀏覽器瀏覽指定網頁:

     Uri uri = Uri.parse(clickUrl.trim());
     Intent Urlintent = new Intent(Intent.ACTION_VIEW, uri);
     Urlintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     context.startActivity(Urlintent);// 開啟連結
指定瀏覽器開啟網頁,首先呼叫queryIntentActivities查詢支援ACTION_VIEW的Resolveinfo。
Uri uri = Uri.parse(clickUrl.trim());
Intent urlintent = new Intent(Intent.ACTION_VIEW, uri);
PackageManager pm = context.getPackageManager(); //獲取packagemanager
List<ResolveInfo> queryactivities = pm.queryIntentActivities(urlintent,   
                            PackageManager.GET_INTENT_FILTERS);

如果查詢到的值大於0,那麼表示找到了支援開啟連結的activity,然後可以確定支援開啟連結的應用的activity,然後找activity所屬的包名和activity的名字,然後呼叫urlintent的setClassName設定packagename和activityname。其中BROWERINDEX為系統中儲存的瀏覽器的序號,此處可以指定queryactivities.size()範圍之內的值。

     if (queryactivities.size() > 0) {  
         urlintent.setClassName(queryactivities.get(BROWERINDEX).activityInfo.packageName,
                   queryactivities.get(BROWERINDEX).activityInfo.name);
         urlintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         context.startActivity(urlintent); // 開啟連結
     }

最後呼叫startActivity使用指定的瀏覽器開啟URL。