【Android】kotlin android12打开链接无法跳转浏览器 intent.resolveActivity(packageManager) == null

13 篇文章 0 订阅
5 篇文章 0 订阅

需求:

打开url链接, 并跳转到浏览器

实现 :

			val downloadUrl = "https://xxx.com/app/app-release.apk"
            val intent = Intent(Intent.ACTION_VIEW)
            intent.data = Uri.parse(downloadUrl)
            download_button.setOnClickListener {
                if (intent.resolveActivity(packageManager) == null) {
                    // 如果没有应用可以处理这个Intent
                    Toast.makeText(this, "No application available to handle this URL", Toast.LENGTH_LONG).show()
                } else {
                    startActivity(intent)
                }
            }

到这里 经过测试 Android10及Android14都可以打开, 而Android12的手机intent.resolveActivity(packageManager) == null, 查看了很多, 有的说设备不支持/浏览器配置/Intent MIME 类型 不正确 等等的原因

经过排查, 是Android12权限询问的问题, 和Android12 打不开摄像头的问题如出一辙(https://blog.csdn.net/qq_45481971/article/details/140829825?spm=1001.2014.3001.5501)

解决 :

AndroidManifest.xml

    <queries>
        <intent>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="https" />  // 如果是http, 则改成http
        </intent>
    </queries>

完美解决~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值