You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android开发:如何在浏览器应用中打开默认浏览器应用选择对话框

如何唤起默认浏览器选择对话框

以下是针对不同Android版本的实现方案,直接复制代码即可适配:

Android 12(API 31)及以上

系统提供了直接跳转至默认浏览器选择界面的API,两种实现方式:

方式1:直接跳转至默认应用设置页

val intent = Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS)
intent.putExtra(Settings.EXTRA_APP_PACKAGE, packageName)
startActivity(intent)

方式2:精准唤起浏览器选择弹窗

通过PackageManager创建指定浏览器类型的意图,直接弹出选择对话框:

val pm = packageManager
val targetComponent = ComponentName(packageName, "com.your.package.YourBrowserActivity")
val intentFilter = IntentFilter(Intent.ACTION_VIEW).apply {
    addCategory(Intent.CATEGORY_BROWSABLE)
    addDataScheme("http")
}
val intent = pm.createManageDefaultAppIntent(targetComponent, intentFilter)
startActivity(intent)

Android 11(API 30)及以下

旧版本需通过选择器意图唤起对话框,部分定制系统可能会直接跳转至设置页:

// 构造浏览器意图
val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse("http://"))
browserIntent.addCategory(Intent.CATEGORY_BROWSABLE)

// 创建选择器
val chooser = Intent.createChooser(browserIntent, "选择默认浏览器")
chooser.putExtra(Intent.EXTRA_SELECTED_COMPONENT, 
    ComponentName(packageName, "com.your.package.YourBrowserActivity"))
chooser.putExtra(Intent.EXTRA_INTENT, browserIntent)

startActivity(chooser)

如果上述代码未弹出对话框,可直接引导至应用详情页让用户手动设置:

val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
intent.data = Uri.parse("package:$packageName")
startActivity(intent)

关键前提

确保你的应用在Manifest中注册了浏览器相关的Intent Filter,示例如下:

<activity android:name=".YourBrowserActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="http" />
        <data android:scheme="https" />
    </intent-filter>
</activity>

内容的提问来源于stack exchange,提问作者Pratik Dhoriyani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 08:30:51