命令协议
Android SDK 支持的设备命令列表。
命令类型
基础命令
| 命令 | 类型 | 说明 |
|---|---|---|
| CmdReqBind | 请求 | 设备绑定 |
| CmdReqUnbind | 请求 | 设备解绑 |
| CmdReqGetVersion | 请求 | 获取固件版本 |
| CmdReqGetBattery | 请求 | 获取电池状态 |
设置命令
| 命令 | 类型 | 说明 |
|---|---|---|
| CmdReqSetBrightness | 请求 | 设置亮度 |
| CmdReqGetBrightness | 请求 | 获取亮度 |
| CmdReqSetVolume | 请求 | 设置音量 |
| CmdReqGetVolume | 请求 | 获取音量 |
| CmdReqSetLanguage | 请求 | 设置语言 |
| CmdReqGetLanguage | 请求 | 获取语言 |
| CmdReqSetSystemTime | 请求 | 同步时间 |
功能命令
| 命令 | 类型 | 说明 |
|---|---|---|
| CmdReqMicEnable | 请求 | 麦克风开关 |
| CmdReqMsgNotification | 请求 | 发送通知 |
| CmdReqVoiceRttText | 请求 | 实时文本 |
发送命令
基本用法
kotlin
val cmd = CmdReqGetBattery()
DeviceManager.getInstance().sendCmd(cmd)带参数命令
kotlin
val cmd = CmdReqSetBrightness().apply {
brightness = 80 // 0-100
}
DeviceManager.getInstance().sendCmd(cmd)接收响应
响应监听
kotlin
MetaGlassDeviceGlobal.addGlassDeviceCmdRspListener { address, response ->
when (response.type) {
CmdType.CMD_GET_BATTERY_INFO -> handleBattery(response)
CmdType.CMD_GET_VERSION -> handleVersion(response)
CmdType.CMD_BIND -> handleBind(response)
}
}响应处理
kotlin
private fun handleBattery(response: CmdRsp) {
val battery = response as CmdRspBattery
val level = battery.level
val isCharging = battery.isCharging
updateBatteryUI(level, isCharging)
}
private fun handleVersion(response: CmdRsp) {
val version = response as CmdRspVersion
val firmwareVersion = version.firmwareVersion
showVersion(firmwareVersion)
}常用命令示例
获取电池状态
kotlin
DeviceManager.getInstance().sendCmd(CmdReqGetBattery())
// 响应处理
fun onBatteryResponse(response: CmdRspBattery) {
val level = response.level // 电量百分比
val charging = response.isCharging // 是否充电
}设置亮度
kotlin
val cmd = CmdReqSetBrightness().apply {
brightness = 70
}
DeviceManager.getInstance().sendCmd(cmd)发送通知
kotlin
val cmd = CmdReqMsgNotification().apply {
title = "新消息"
content = "您有一条新消息"
packageName = "com.example.app"
}
DeviceManager.getInstance().sendCmd(cmd)发送实时文本 (字幕)
kotlin
val cmd = CmdReqVoiceRttText().apply {
text = "这是实时字幕内容"
isFinal = false // 是否为最终结果
}
DeviceManager.getInstance().sendCmd(cmd)同步系统时间
kotlin
val cmd = CmdReqSetSystemTime().apply {
timestamp = System.currentTimeMillis()
}
DeviceManager.getInstance().sendCmd(cmd)消息类型
MessageType 常量
java
public class MessageType {
public static final int NOTIFICATION_PACKAGE_FILTER = 3000;
public static final int NOTIFICATION_NEW_MSG = 3001;
public static final int NOTIFICATION_SMS_PACKAGE_NAME = 3002;
}错误处理
kotlin
MetaGlassDeviceGlobal.addGlassDeviceCmdRspListener { address, response ->
if (response.status != STATUS_SUCCESS) {
Log.e("CMD", "Command failed: ${response.type}, status: ${response.status}")
handleError(response.type, response.status)
}
}