Android 关于打开默认浏览器的那些事儿!!!

废话不多说先上代码!

    /**
     * 打开网页
     */
    public void OpenWebpage(){
        Uri uri = Uri.parse("https://www.baidu.com/");
        final Intent intent = new Intent();
        intent.setAction(Intent.ACTION_VIEW);
        intent.setData(uri);
        //是否安装浏览器
        if (intent.resolveActivity(this.getPackageManager()) != null) {
            ComponentName componentName = intent.resolveActivity(this.getPackageManager());
            Log.e(TAG, "onConfigurationChanged: "+componentName );
            Log.e(TAG, "onConfigurationChanged: "+componentName.getClassName() );
            Log.e(TAG, "onConfigurationChanged: "+componentName.getPackageName() );
            //下载管理器
//            intent.setClassName("com.android.providers.downloads.ui","com.android.providers.downloads.ui.activity.BrowserDownloadActivity");
            //设置浏览器
            //intent.setClassName(componentName.getPackageName() ,componentName.getClassName());
            //android 自带的浏览器
            //intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");
            //选择浏览器
            //startActivity(Intent.createChooser(intent,"请选择浏览器"));
            //默认浏览器
            startActivity(intent);
        } else {
            Toast.makeText(this.getApplicationContext(), "请下载浏览器", Toast.LENGTH_SHORT).show();
        }
    }

总结:
1.下载管理器
com.android.providers.downloads.ui
如果是 “http://xxx/xx/xx.apk” 这样的格式的话,在Android 12.5 小米手机会报一个“该路径不可用” ,也不知道为什么,那怕我使用的是默认浏览器也会调用到下载管理器去。
希望有大神帮忙解答下!
2.使用手机设置的默认浏览器打开网页
intent.setClassName(componentName.getPackageName() ,componentName.getClassName());
startActivity(intent);
可以打开手机设置的默认浏览器,但是在Android12.5如果是打开下载连接的话会跳转的到下载管理器去,而不是打开一个网页。
3.手机默认浏览器
intent.setClassName(“com.android.browser”,“com.android.browser.BrowserActivity”);
startActivity(intent);
这个是指手机默认的浏览器,不管再怎么设置手机默认浏览器都没有用的
4.手动选择浏览器
startActivity(Intent.createChooser(intent,“请选择浏览器”));
startActivity(intent);

最后:手机只有google浏览器没有其他浏览器的情况下,使用下载连接打开网页google浏览器是不会下载的!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值