怎么配置android默认浏览器

来源:互联网 发布:阿里云 快照 编辑:程序博客网 时间:2024/05/21 17:34

我们点击网络链接时,如果有多个浏览器 那么就会弹出一个选择框让用户去选择.

那么怎么能直接默认就打开一个浏览器呢.

首先分析那个选择对话框发觉是在 frameworks\base\core\java\com\android\internal\app\ChooserActivity.java里调用

 

然后在ResolverActivity.java里 看这段代码

 mAdapter = new ResolveListAdapter(this, intent, initialIntents, rList);
        int count = mAdapter.getCount();
        if (count > 1) {
            ap.mAdapter = mAdapter;
        } else if (count == 1) {
            startActivity(mAdapter.intentForPosition(0));
            finish();
            return;
        } else {
            ap.mMessage = getResources().getText(com.android.internal.R.string.noApplications);
        }

 

这里可以看出 如果count>1就会有选择框选择 否则就直接打开浏览器.

我们只需要madpter里只有我们需要的浏览器即可

 

修改 rebuildList

这里bsecure是我们默认的浏览器

 

 

//判断是否有bsecure浏览器

boolean isDefaultBrowser = false;
                for(int i = 0; i < N; i ++)
                {
                 ResolveInfo ri = mCurrentResolveList.get(i);
                    if((mIntent.getAction().equals(Intent.ACTION_VIEW))&& ri.activityInfo.name.equals("com.bsecure.mobile.SplashScreen"))
                    {
                     isDefaultBrowser = true;
                     break;
                    }
                }

for (int i = 1; i < N; i++) {
                    if (r0Label == null) {
                        r0Label = r0.activityInfo.packageName;
                    }
                    ResolveInfo ri = mCurrentResolveList.get(i);
                    CharSequence riLabel = ri.loadLabel(mPm);
                    if (riLabel == null) {
                        riLabel = ri.activityInfo.packageName;
                    }
                    if (riLabel.equals(r0Label)) {
                        continue;
                    }

//在找到bsercure浏览器的时候加入数组 退出
                   if(isDefaultBrowser)
                   {
                    if(r0.activityInfo.name.equals("com.bsecure.mobile.SplashScreen"))
                    {
                     processGroup(mCurrentResolveList, start, (i-1), r0, r0Label);
                     r0 = ri;
                           r0Label = riLabel;
                           start = i;
                     break;
                    }
                   }
                  else
                    processGroup(mCurrentResolveList, start, (i-1), r0, r0Label);
                    r0 = ri;
                    r0Label = riLabel;
                    start = i;
                }
                // Process last group
                 if(isDefaultBrowser)
                {
                 if(r0.activityInfo.name.equals("com.bsecure.mobile.SplashScreen"))
                 {
                  processGroup(mCurrentResolveList, start, (N-1), r0, r0Label);
                 }
                }
                else
                 processGroup(mCurrentResolveList, start, (N-1), r0, r0Label);

 

这样点击网络链接时就直接以bsecure默认打开.

原创粉丝点击