如何通过ADB命令设置Android设备默认浏览器为Chrome?
解决ADB设置Chrome为默认浏览器的问题
问题分析
你使用的pm set-default-browser com.android.chrome --user 0命令无效,核心原因是Android 10+引入了RoleManager角色系统,默认浏览器归属android.app.role.BROWSER角色,旧版pm set-default-browser命令仅在Android 9及以下有效,且即使在旧版本中也需要指定完整的组件名(包名+Activity),而非仅包名。
可行解决方案
根据你的Android版本选择对应命令:
1. Android 10及以上版本(推荐)
使用RoleManager相关命令完成设置:
- 授予Chrome浏览器角色权限:
adb shell cmd role set-role-holder android.app.role.BROWSER com.android.chrome --user 0 - 设置Chrome为默认网页链接处理应用:
adb shell cmd package set-app-links --package com.android.chrome true --user 0 - (可选)指定Chrome的默认Activity(确保命令生效,先通过以下命令获取正确组件名):
获取Chrome的浏览器Activity:
输出类似adb shell dumpsys package com.android.chrome | grep -A 5 "android.intent.action.VIEW" | grep "Activity"com.android.chrome.browser.ChromeTabbedActivity,然后执行:adb shell am set-default-browser com.android.chrome/com.android.chrome.browser.ChromeTabbedActivity --user 0
2. Android 9及以下版本
必须指定完整的组件名(包名+Activity):
adb shell pm set-default-browser com.android.chrome/com.android.chrome.browser.ChromeTabbedActivity --user 0
验证设置是否成功
执行以下命令检查:
# 查看当前默认浏览器角色持有者 adb shell cmd role get-role-holders android.app.role.BROWSER # 或查看默认应用配置 adb shell dumpsys package | grep "default-browser"
注意事项
- 确保设备已开启USB调试,且ADB连接正常;
- 部分定制ROM可能限制ADB修改默认应用,若命令执行失败,尝试先执行
adb root获取更高权限; - 不同Chrome版本的Activity组件名可能略有差异,务必通过
dumpsys命令获取准确值。
内容的提问来源于stack exchange,提问作者Peter Lorentzen
相关产品推荐
相关产品推荐

