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

Android Kotlin中如何创建仅显示支持视频通话应用的选择器?

解决Android Kotlin中仅显示支持视频通话应用的选择器问题

原代码的问题

你当前使用Intent.ACTION_SEND + video/*的方式,本质是唤起视频文件分享的应用选择器,而非视频通话应用。这就导致:

  • 会混入支持视频分享但不支持视频通话的应用(比如图库、视频编辑工具)
  • 真正的视频通话应用(如Skype、WhatsApp)不会响应这个动作,所以无法被唤起

正确实现方案

方案一:利用系统视频通话Intent(推荐)

使用系统标准的视频通话Intent,让系统自动筛选支持该功能的应用:

val videoCallIntent = Intent(Intent.ACTION_VIEW).apply {
    // 可指定具体号码,例如 tel:+8613800138000,不指定则显示通用选择器
    data = Uri.parse("tel:")
    // 标记启动视频通话
    putExtra(Intent.EXTRA_START_CALL_WITH_VIDEO, true)
}

val chooser = Intent.createChooser(videoCallIntent, "选择视频通话应用")

try {
    context.startActivity(chooser)
} catch (e: ActivityNotFoundException) {
    // 处理无支持应用的场景,例如提示用户安装相关应用
}

方案二:手动精准筛选应用

如果系统筛选不够精准,可通过包名手动指定需要显示的视频通话应用,避免无关应用混入:

val baseIntent = Intent(Intent.ACTION_VIEW).apply {
    data = Uri.parse("tel:")
    putExtra(Intent.EXTRA_START_CALL_WITH_VIDEO, true)
}

val packageManager = context.packageManager
// 查询所有支持该Intent的应用
val resolveInfos = packageManager.queryIntentActivities(baseIntent, 0)

// 过滤出指定的视频通话应用(包名可根据需求调整)
val targetPackages = listOf(
    "com.skype.raider",       // Skype
    "com.whatsapp",           // WhatsApp
    "com.google.android.apps.meetings", // Google Meet
    "com.google.android.apps.tachyon",  // Google Duo
    "us.zoom.videomeetings"   // Zoom
)
val filteredIntents = resolveInfos
    .filter { targetPackages.contains(it.activityInfo.packageName) }
    .map {
        Intent(baseIntent).apply {
            setPackage(it.activityInfo.packageName)
        }
    }.toTypedArray()

if (filteredIntents.isNotEmpty()) {
    val chooser = Intent.createChooser(filteredIntents[0], "选择视频通话应用").apply {
        putExtra(Intent.EXTRA_INITIAL_INTENTS, filteredIntents.drop(1).toTypedArray())
    }
    context.startActivity(chooser)
} else {
    // 无支持应用时的处理逻辑
}

补充说明

  • 如果需要发起指定联系人的视频通话,将Uri.parse("tel:")替换为具体号码(如tel:+8613800138000),部分应用会直接跳转到该联系人的视频通话界面。
  • 方案二中的应用包名需注意版本更新,部分应用可能会变更包名,需及时调整。

内容的提问来源于stack exchange,提问作者Jai Hinsu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 23:26:21