search
开发文档
开发文档/小游戏开发/API/设备/罗盘
罗盘更新时间:2026-04-27 22:12:11

小米已接入快游戏联盟(OVMR)标准,通过新标准进行导出。近期小米小游戏已经停止Cocos导出,为避免影响您的游戏正常打包,请尽快迁移至快游戏联盟标准

Compass

基础信息说明

功能概述:提供罗盘数据监听能力,实时获取设备朝向与精度等级,并支持开始/停止监听及回调管理

项目说明
版本要求
前提条件设备支持罗盘/磁力传感器
使用限制
相关教程

方法说明

方法名签名同步/异步说明
startCompassqg.startCompass(object): void同步开始监听罗盘数据,结果通过回调异步返回
stopCompassqg.stopCompass(object): void同步停止监听罗盘数据,结果通过回调异步返回
onCompassChangeqg.onCompassChange(callback): void异步回调注册罗盘数据变化回调,频率约 5 次/秒
offCompassChangeqg.offCompassChange(callback): void同步取消罗盘数据变化回调(见注意事项)

参数说明

qg.startCompass(object) / qg.stopCompass(object)

属性名类型必填说明
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

qg.onCompassChange(callback)

属性名类型必填说明
callbackFunction罗盘数据变化回调函数,入参为 { direction: Number, accuracy: String }

qg.offCompassChange(callback)

属性名类型必填说明
callbackFunction用于取消指定回调;如当前实现未提供独立取消,可用 qg.stopCompass() 或 qg.onCompassChange(null)

返回值说明

所有方法均为无返回(void),通过参数中的回调或事件回调获取结果

回调结果说明

回调成功
onCompassChange 回调参数

属性名类型说明
directionNumber当前设备朝向角度,范围 0–360,单位度
accuracyString(可选)罗盘精度,可能值:high、medium、low、unreliable、no-contact、unknow

精度映射规则来源于实现层对底层精度值的转换逻辑。
调用 qg.onCompassChange 后会自动开始监听,可使用 qg.stopCompass 停止监听。

accuracy参数说明
Android:accuracy 是一个 String 类型的枚举值

说明
high高精度
medium中等精度
low低精度
no-contact不可信,传感器失去连接
unreliable不可信,原因未知
unknow未知的精度枚举值

startCompass/stopCompass 结果回调

属性名类型必填说明
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数(当前实现可能不触发)
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

示例代码

// 开始监听罗盘
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 会覆盖之前的回调。
上一篇:加速计
下一篇:振动
文档内容是否有帮助?
有帮助
无帮助