Android修改默认浏览器为其他浏览器

[java]  view plain  copy
  1. public class MainActivity extends Activity {  
  2.   
  3.     private static final String TAG = "MainActivity";  
  4.   
  5.     @Override  
  6.     protected void onCreate(Bundle savedInstanceState) {  
  7.         super.onCreate(savedInstanceState);  
  8.         setContentView(R.layout.activity_main);  
  9.   
  10.         PackageManager packageManager = this.getPackageManager();  
  11.         String str1 = "android.intent.category.DEFAULT";  
  12.         String str2 = "android.intent.category.BROWSABLE";  
  13.         String str3 = "android.intent.action.VIEW";  
  14.   
  15.         // 设置默认项的必须参数之一,用户的操作符合该过滤器时,默认设置起效  
  16.         IntentFilter filter = new IntentFilter(str3);  
  17.         filter.addCategory(str1);  
  18.         filter.addCategory(str2);  
  19.         filter.addDataScheme("http");  
  20.         // 设置浏览页面用的Activity  
  21.         ComponentName component = new ComponentName("com.UCMobile",  
  22.                 "com.UCMobile.main.UCMobile");  
  23.   
  24.         Intent intent = new Intent(str3);  
  25.         intent.addCategory(str2);  
  26.         intent.addCategory(str1);  
  27.         Uri uri = Uri.parse("http://");  
  28.         intent.setDataAndType(uri, null);  
  29.   
  30.         // 找出手机当前安装的所有浏览器程序  
  31.         List<ResolveInfo> resolveInfoList = packageManager  
  32.                 .queryIntentActivities(intent,  
  33.                         PackageManager.GET_INTENT_FILTERS);  
  34.   
  35.         int size = resolveInfoList.size();  
  36.         ComponentName[] arrayOfComponentName = new ComponentName[size];  
  37.         for (int i = 0; i < size; i++) {  
  38.             ActivityInfo activityInfo = resolveInfoList.get(i).activityInfo;  
  39.             String packageName = activityInfo.packageName;  
  40.             String className = activityInfo.name;  
  41.   
  42.             Log.d(TAG, "packageName  " + packageName);  
  43.             Log.d(TAG, "className  " + className);  
  44.   
  45.             // 清除之前的默认设置  
  46.             packageManager.clearPackagePreferredActivities(packageName);  
  47.             ComponentName componentName = new ComponentName(packageName,  
  48.                     className);  
  49.             arrayOfComponentName[i] = componentName;  
  50.         }  
  51.         packageManager.addPreferredActivity(filter,  
  52.                 IntentFilter.MATCH_CATEGORY_SCHEME, arrayOfComponentName,  
  53.                 component);  
  54.   
  55.     }  

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值