public void startWebBrowser(Context context, String url) {
final Intent intent =new Intent();
? ? ? ? intent.setAction(Intent.ACTION_VIEW);
? ? ? ? intent.addCategory(Intent.CATEGORY_BROWSABLE);
? ? ? ? intent.setData(Uri.parse(url));
? ? ? ? final ComponentName componentName = resolveComponent(context, intent);
? ? ? ? if (componentName !=null) {
Log.d("componentName==>", componentName.getClassName());
//? ? ? ? ? ? ToastUtil.show(componentName.getClassName());
? ? ? ? ? ? context.startActivity(Intent.createChooser(intent, "選擇瀏覽器"));
? ? ? ? }else {
Log.d("componentName==>", "連接錯誤或沒有瀏覽器--跳轉(zhuǎn)本地webview");
? ? ? ? ? ? Uri uri = Uri.parse(url);
? ? ? ? ? ? Intent intent2 =new Intent(Intent.ACTION_VIEW, uri);
? ? ? ? ? ? context.startActivity(intent2);
//? ? ? ? ? ? ToastUtil.show("沒有瀏覽器");
//? ? ? ? ? ? BrowserActivity.start(getActivity_(), url);
? ? ? ? }
}
private ComponentNameresolveComponent(Context context, Intent intent) {
// final ComponentName componentName = intent.resolveActivity(context.getPackageManager());
? ? ? ? PackageManager pm = context.getPackageManager();
? ? ? ? ResolveInfo ri = pm.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
? ? ? ? if (ri !=null) {
return new ComponentName(
ri.activityInfo.applicationInfo.packageName, ri.activityInfo.name);
? ? ? ? }
return null;
? ? }
正常瀏覽器: com.android.browser? ? oneplus的是com.heytap.browser? ?所以onplus手機上面就直接是? component 的名字打開就行