- public class MainActivity extends Activity {
- private static final String TAG = "MainActivity";
- @Override
- protected 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");
- // 设置浏览页面用的Activity
- ComponentName 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" /> 及系统签名噢