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

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

HarmonyOS
2024-05-26 11:18:17
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Sunny3141

相关能力

提供了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
相关问题
JS如何实现手机扫码功能
1845浏览 • 1回复 待解决
最新系统手机下部会有些留白
686浏览 • 1回复 待解决
如何实现用户申请授权功能
684浏览 • 1回复 待解决
荣耀手机什么时候更新
6416浏览 • 3回复 待解决
关于手机鸿蒙OS系统功能阉割
4831浏览 • 1回复 待解决
验证手机号是否已被注册/绑定功能
2488浏览 • 1回复 待解决
手机P40 pro+ 啥时候能安装HMOS
4384浏览 • 2回复 待解决
手机相机应用点建议
3933浏览 • 1回复 待解决
PersistentStorage实现手机号登录匹配
468浏览 • 1回复 待解决
款完全去美化国产云手机
6177浏览 • 5回复 待解决
支持鸿蒙系统手机有哪些
3799浏览 • 2回复 待解决