摇一摇功能实现,当用户摇动手机的时候,手机的加速度会有较大变化

当用户摇动手机的时候,手机的加速度会有较大变化,于是通过手机加速度传感器的监测数据来判断是否摇动手机。

HarmonyOS
2024-05-26 11:18:17
1426浏览
收藏 0
回答 2
回答 2
按赞同
/
按时间
沉默如海

相关能力

提供了sensor模块,用于管理各种手机预置的传感器。

代码实现

1)module.json5文件中,申请访问加速度传感器权限

"requestPermissions": [ { "name": "ohos.permission.ACCELEROMETER" } ]

2)实现功能

import sensor from '@ohos.sensor'; 
@Entry 
@Component 
struct Index { 
  @State message: string = '摇一摇' 
  @State flag: boolean = false 
  private 
  
  shakeHandler(data){ 
    let x = data.x 
    let y = data.y 
    let z = data.z 
    let shreshold = 10 
    if (Math.sqrt(x*x + y*y + z*z)/3 > shreshold){ 
      this.flag = true 
    }else{ 
      this.flag = false 
    } 
  } 
  
  aboutToAppear(){ //挂载传感器监听函数 
    try{ 
      sensor.on(sensor.SensorId.ACCELEROMETER, this.shakeHandler.bind(this),{ interval: 10000000 }) 
    }catch (error){ 
      console.log("出错了: " + error.data, "---msg: "+error.message) 
    } 
  } 
  aboutToDisappear(){//卸载传感器监听函数 
    try{ 
      sensor.off(sensor.SensorId.ACCELEROMETER) 
    }catch (err){ 
      console.error('Off fail, errCode: ' + err.code + ' ,msg: ' + err.message) 
    } 
  } 
  build() { 
    Row() { 
      Column() { 
        Text(this.message) 
          .fontSize(50) 
          .fontWeight(FontWeight.Bold) 
      } 
      .width('100%') 
    } 
    .height('100%') 
    .backgroundColor(this.flag? Color.Red : Color.White ) 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
分享
微博
QQ
微信
回复
2024-05-27 11:03:52
GeorgeGcs

你好,请参考​​【HarmonyOS NEXT】鸿蒙应用实现手机摇一摇功能-鸿蒙开发者社区-51CTO.COM​


需要检查设备是否有传感器,才能使用传感器的api。并且使用之前需要授权传感器权限,直接监听调用。

分享
微博
QQ
微信
回复
2025-03-24 16:01:54


相关问题
HarmonyOS 手机一摇功能
632浏览 • 2回复 待解决
HarmonyOS 一摇报错
495浏览 • 2回复 待解决
HarmonyOS 一摇权限
546浏览 • 2回复 待解决
获取加速度传感器方法
1308浏览 • 1回复 待解决
如何开启手机震动功能
1192浏览 • 1回复 待解决
JS如何实现手机扫码功能
3728浏览 • 1回复 待解决
最新系统手机下部会有些留白
2346浏览 • 1回复 待解决
HarmonyOS 手机键登录功能
759浏览 • 1回复 待解决
荣耀手机什么时候更新
8370浏览 • 3回复 待解决
HarmonyOS手机如何使用nfc功能
729浏览 • 0回复 待解决
HarmonyOS手机如何使用nfc功能
1264浏览 • 1回复 待解决
手机端控制,手机端控制如何实现
378浏览 • 0回复 待解决