需求:
打开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>
完美解决~