android - Android 12 在 Chrome 意图中打开链接
问题描述
自 Android 12 起,只能使用一个“已批准”的应用打开链接。截至目前,我在 AndroidManifest.xml 中将我的应用程序支持的 url 定义为意图过滤器。我的应用程序中还有一个按钮,可以创建在浏览器中打开链接的意图。
但是,由于 Android 12 的限制,如果我将 url 绑定到我的应用程序,单击在浏览器中打开按钮确实会重新打开我的应用程序,这是一种非常不受欢迎的行为。
有没有办法强制在 chrome(或其他浏览器)中打开 url?我检查了 android 开发人员文档,但没有找到任何关于它的信息。
谢谢
解决方案
您可以将默认浏览器显式指定为处理您的意图的包:
val defaultBrowserIntent = Intent(Intent.ACTION_VIEW, Uri.parse("http://"))
// This would be Chrome if it's the selected default browser
val defaultBrowserPackageName = packageManager.resolveActivity(
defaultBrowserIntent,
PackageManager.MATCH_DEFAULT_ONLY
)
?.activityInfo
?.packageName
val yourIntent = Intent(context, ...).apply {
package = defaultBrowserPackageName
}
推荐阅读
- c# - 将文件从 Azure 读入 MemoryStream C#
- javascript - 在选中复选框时,需要另一个复选框
- python - 如何刮除所有元素而不仅仅是一个?
- visual-studio - 如何在 Line and Stacked Chart Power BI 中将阶梯线区域扩展到图形边缘
- oracle - Oracle PL/SQL 如何在巴黎打发时间?
- vue.js - 如何处理 eslint-disable-next-line 与 prettier 的冲突?
- javascript - Sendgrid 动态模板从 Anchor 标记中剥离 HREF
- c# - 如何在 asp.net 核心 mvc/razor 页面混合应用程序中使默认页面使用 MVC 默认页面,“主页/索引”页面
- vue.js - 将 Nuxt 配置为按路由或页面包含 CSS,而不是全局
- c# - 如何在linq内部连接中添加小于或等于条件