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

如何检测Wear OS设备连接的是安卓手机还是iPhone以适配授权流程?

判断Wear OS设备连接的手机类型(安卓/iPhone)

可以通过Wear OS提供的系统API直接判断当前配对的手机类型,以此来切换对应的授权流程,具体实现如下:

核心判断方法

使用CompanionDeviceManager API获取已配对的关联设备信息,通过DeviceInfo中的deviceType字段区分设备类型:

  • 连接安卓手机时,deviceType对应DEVICE_TYPE_PHONE,此时执行PKCE授权流程
  • 连接iPhone时,deviceType对应DEVICE_TYPE_IOS,此时执行DAG授权流程

代码示例(Kotlin)

val companionDeviceManager = getSystemService(CompanionDeviceManager::class.java)
val pairedDevices = companionDeviceManager.getAssociatedDevices()

// 取第一个配对设备(Wear OS通常仅配对一个手机)
pairedDevices.firstOrNull()?.let { device ->
    when (device.deviceType) {
        DeviceInfo.DEVICE_TYPE_PHONE -> {
            // 启动PKCE授权流程
        }
        DeviceInfo.DEVICE_TYPE_IOS -> {
            // 启动DAG授权流程
        }
    }
}

注意事项

  • 应用需声明android.permission.REQUEST_COMPANION_PROFILE_WATCH权限,并在Manifest中正确配置companion应用的关联关系
  • 针对部分旧版Wear OS,如果没有DEVICE_TYPE_IOS枚举值,可辅助通过设备名称(如包含"iPhone"关键字)或设备ID格式做补充判断,但这种方式可靠性低于系统API判断

内容的提问来源于stack exchange,提问作者Kostya Rudenko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 08:57:11