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

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

HarmonyOS
2024-05-26 11:18:17
浏览
收藏 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 ) 
  } 
}
分享
微博
QQ
微信
回复
2024-05-27 11:03:52
GeorgeGcs

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


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

分享
微博
QQ
微信
回复
2025-03-24 16:01:54
相关问题
HarmonyOS 手机一摇功能
1038浏览 • 2回复 待解决
HarmonyOS 一摇报错
741浏览 • 2回复 待解决
HarmonyOS 一摇权限
729浏览 • 2回复 待解决
获取加速度传感器方法
1603浏览 • 1回复 待解决
如何开启手机震动功能
1424浏览 • 1回复 待解决
JS如何实现手机扫码功能
3984浏览 • 1回复 待解决
最新系统手机下部会有些留白
2490浏览 • 1回复 待解决
HarmonyOS 手机键登录功能
1007浏览 • 1回复 待解决
荣耀手机什么时候更新
8609浏览 • 3回复 待解决
HarmonyOS手机如何使用nfc功能
934浏览 • 0回复 待解决
HarmonyOS手机如何使用nfc功能
1591浏览 • 1回复 待解决