如何通过ADB强制启动Android应用选择器打开指定URI?
如何通过ADB强制唤起应用选择器打开URI
常规ADB打开URI的行为
运行以下命令时,系统会优先使用对应URI的默认应用打开链接;如果没有设置默认应用,才会 fallback 到应用选择器:
adb shell am start -a android.intent.action.VIEW -d "https://example.com"
这段命令等价于以下Kotlin代码的逻辑:
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://example.com")) startActivity(intent)
需求说明
需要实现的是强制唤起应用选择器打开指定URI,无论当前是否设置了默认应用,对应以下两段Kotlin代码的效果:
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://example.com")) val chooser = Intent.createChooser(intent, null) startActivity(chooser)
或者:
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://example.com")) val chooser = Intent(Intent.ACTION_CHOOSER) chooser.putExtra(Intent.EXTRA_INTENT, intent) startActivity(chooser)
对应的ADB命令
可以通过直接启动android.intent.action.CHOOSER意图,并传入目标VIEW意图作为额外参数,实现强制唤起选择器的效果:
adb shell am start -a android.intent.action.CHOOSER \ --es android.intent.extra.INTENT "android.intent.action.VIEW;data=https://example.com"
如果需要给选择器设置标题(对应Intent.createChooser的第二个参数),可以额外添加标题参数:
adb shell am start -a android.intent.action.CHOOSER \ --es android.intent.extra.INTENT "android.intent.action.VIEW;data=https://example.com" \ --es android.intent.extra.TITLE "选择打开方式"
内容的提问来源于stack exchange,提问作者Efraim Bart
相关产品推荐
相关产品推荐

