MIUI12.5.1中通过Intent ACTION_VIEW打开YouTube链接失败求助
问题:MIUI 12.5.1中调用ACTION_VIEW打开YouTube链接失败,应用UI无法交互
问题现象
点击按钮通过Intent.ACTION_VIEW调用YouTube应用打开链接时,出现如下报错:
AD-PLUGIN-...Controller com.miui.msa.global E Get miui intent sender : com.testyoutube.app
YouTube应用未启动,且报错后应用UI失去交互能力(按钮无法点击、列表无法滚动),但动画仍正常运行、数据可更新,疑似有隐形窗口覆盖界面。
代码片段
val intent = Intent(Intent.ACTION_VIEW) intent.data = Uri.parse("https://www.youtube.com/") startActivity(intent)
环境与已尝试操作
- MIUI版本:12.5.1
- 已开启应用详情中的「后台弹出界面」权限,但问题未解决
可行解决方案
指定YouTube包名强制跳转
直接给Intent指定YouTube官方应用包名,避免系统跳转时被MIUI广告插件干扰,同时添加可用性检查:val intent = Intent(Intent.ACTION_VIEW) intent.data = Uri.parse("https://www.youtube.com/") intent.setPackage("com.google.android.youtube") if (intent.resolveActivity(packageManager) != null) { startActivity(intent) } else { // 无YouTube应用时 fallback 到浏览器 intent.setPackage(null) startActivity(intent) }添加启动标记
给Intent添加FLAG_ACTIVITY_NEW_TASK标记,规避MIUI后台窗口管理机制的拦截:val intent = Intent(Intent.ACTION_VIEW) intent.data = Uri.parse("https://www.youtube.com/") intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) startActivity(intent)清理MIUI广告服务缓存
进入系统设置→应用设置→搜索「msa」→选择「小米广告服务」→清除缓存和数据,重启应用后重试。使用YouTube深层链接
改用YouTube专属的深层链接格式,可能绕过MIUI的拦截逻辑:val intent = Intent(Intent.ACTION_VIEW) intent.data = Uri.parse("vnd.youtube://www.youtube.com/") startActivity(intent)
内容的提问来源于stack exchange,提问作者pyroblinchik
相关产品推荐
相关产品推荐

