罗盘更新时间:2026-04-27 22:12:11
小米已接入快游戏联盟(OVMR)标准,通过新标准进行导出。近期小米小游戏已经停止Cocos导出,为避免影响您的游戏正常打包,请尽快迁移至快游戏联盟标准。
Compass
基础信息说明
功能概述:提供罗盘数据监听能力,实时获取设备朝向与精度等级,并支持开始/停止监听及回调管理
| 项目 | 说明 |
| 版本要求 | 无 |
| 前提条件 | 设备支持罗盘/磁力传感器 |
| 使用限制 | 无 |
| 相关教程 | 无 |
方法说明
| 方法名 | 签名 | 同步/异步 | 说明 |
| startCompass | qg.startCompass(object): void | 同步 | 开始监听罗盘数据,结果通过回调异步返回 |
| stopCompass | qg.stopCompass(object): void | 同步 | 停止监听罗盘数据,结果通过回调异步返回 |
| onCompassChange | qg.onCompassChange(callback): void | 异步回调 | 注册罗盘数据变化回调,频率约 5 次/秒 |
| offCompassChange | qg.offCompassChange(callback): void | 同步 | 取消罗盘数据变化回调(见注意事项) |
参数说明
qg.startCompass(object) / qg.stopCompass(object)
| 属性名 | 类型 | 必填 | 说明 |
| success | Function | 否 | 接口调用成功的回调函数 |
| fail | Function | 否 | 接口调用失败的回调函数 |
| complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
qg.onCompassChange(callback)
| 属性名 | 类型 | 必填 | 说明 |
| callback | Function | 是 | 罗盘数据变化回调函数,入参为 { direction: Number, accuracy: String } |
qg.offCompassChange(callback)
| 属性名 | 类型 | 必填 | 说明 |
| callback | Function | 否 | 用于取消指定回调;如当前实现未提供独立取消,可用 qg.stopCompass() 或 qg.onCompassChange(null) |
返回值说明
所有方法均为无返回(void),通过参数中的回调或事件回调获取结果
回调结果说明
回调成功
onCompassChange 回调参数
| 属性名 | 类型 | 说明 |
| direction | Number | 当前设备朝向角度,范围 0–360,单位度 |
| accuracy | String | (可选)罗盘精度,可能值:high、medium、low、unreliable、no-contact、unknow |
精度映射规则来源于实现层对底层精度值的转换逻辑。
调用 qg.onCompassChange 后会自动开始监听,可使用 qg.stopCompass 停止监听。
accuracy参数说明
Android:accuracy 是一个 String 类型的枚举值
| 值 | 说明 |
| high | 高精度 |
| medium | 中等精度 |
| low | 低精度 |
| no-contact | 不可信,传感器失去连接 |
| unreliable | 不可信,原因未知 |
| unknow | 未知的精度枚举值 |
startCompass/stopCompass 结果回调
| 属性名 | 类型 | 必填 | 说明 |
| success | Function | 否 | 接口调用成功的回调函数 |
| fail | Function | 否 | 接口调用失败的回调函数(当前实现可能不触发) |
| complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例代码
// 开始监听罗盘
qg.startCompass({
success() {
console.log('startCompass success')
},
fail(err) {
console.log('startCompass fail', err)
},
complete() {
console.log('startCompass complete')
}
})
// 注册罗盘数据变化回调
qg.onCompassChange(function (res) {
// res: { direction: Number, accuracy: String }
console.log('direction:', res.direction, 'accuracy:', res.accuracy)
})
// 停止监听罗盘
qg.stopCompass({
success() {
console.log('stopCompass success')
}
})注意事项
- 监听罗盘回调频率约为 5 次/秒。
- 仅支持单一回调,重复调用
onCompassChange会覆盖之前的回调。
上一篇:加速计
下一篇:振动
文档内容是否有帮助?
有帮助
无帮助