android 下载默认启动QQ浏览器

来源:互联网 发布:钢琴 王雅伦 知乎 编辑:程序博客网 时间:2024/04/29 15:35
//内置QQ浏览器
//在程序启动的第一个activity 中添加如下函数

//设置系统默认浏览器是QQ浏览器
private void setBroser(){
   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");
   // 关键 设置QQ浏览:包名:com.tencent.mtt ,类名:com.tencent.mtt.MainActivity
   ComponentName component = new ComponentName("com.tencent.mtt",
     "com.tencent.mtt.MainActivity");


   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;


    // 清除之前的默认设置
    packageManager.clearPackagePreferredActivities(packageName);
    ComponentName componentName = new ComponentName(packageName,
      className);
    arrayOfComponentName[i] = componentName;
   }
   packageManager.addPreferredActivity(filter,
     IntentFilter.MATCH_CATEGORY_SCHEME, arrayOfComponentName,
     component);


}


//调用
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        setBroser();//调用函数
     }
0 0
原创粉丝点击