Android批改默认浏览器为其他浏览器(UC)

Android修改默认浏览器为其他浏览器(UC)public class MainActivity extends Activity {private static fin

Android修改默认浏览器为其他浏览器(UC)

public class MainActivity extends Activity {private static final String TAG = "MainActivity";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);PackageManager packageManager = this.getPackageManager();String str1 = "android.intent.category.DEFAULT";String str2 = "android.intent.category.BROWSABLE";String str3 = "android.intent.action.VIEW";// 设置默认项的必须参数之一,用户的操作符合该过滤器时,默认设置起效IntentFilter filter = new IntentFilter(str3);filter.addCategory(str1);filter.addCategory(str2);filter.addDataScheme("http");// 设置浏览页面用的ActivityComponentName component = new ComponentName("com.UCMobile","com.UCMobile.main.UCMobile");Intent intent = new Intent(str3);intent.addCategory(str2);intent.addCategory(str1);Uri uri = Uri.parse("http://");intent.setDataAndType(uri, null);// 找出手机当前安装的所有浏览器程序List<ResolveInfo> resolveInfoList = packageManager.queryIntentActivities(intent,PackageManager.GET_INTENT_FILTERS);int size = resolveInfoList.size();ComponentName[] arrayOfComponentName = new ComponentName[size];for (int i = 0; i < size; i++) {ActivityInfo activityInfo = resolveInfoList.get(i).activityInfo;String packageName = activityInfo.packageName;String className = activityInfo.name;Log.d(TAG, "packageName  " + packageName);Log.d(TAG, "className  " + className);// 清除之前的默认设置packageManager.clearPackagePreferredActivities(packageName);ComponentName componentName = new ComponentName(packageName,className);arrayOfComponentName[i] = componentName;}packageManager.addPreferredActivity(filter,IntentFilter.MATCH_CATEGORY_SCHEME, arrayOfComponentName,component);}


记得 <uses-permission android:name="android.permission.SET_PREFERRED_APPLICATIONS" /> 及系统签名噢