HarmonyOS 如何通过传感器获取设备方向?

如题:HarmonyOS 如何通过传感器获取设备方向?

阅读 620
1 个回答

可以参考如下链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-sensor-V5\#sensorgetorientation9

相关demo如下:

import sensor from '@ohos.sensor';
import BusinessError from '@ohos.base';
@Entry
@Component
struct sensorExample{
  build() {
    Button("获取设备方向").width(100).height(100)
      .onClick(()=>{
        try {
          let preRotationMatrix = [
            1, 0, 0,
            0, 0.87, -0.50,
            0, 0.50, 0.87
          ];
          sensor.getOrientation(preRotationMatrix, (err: BusinessError.BusinessError, data: Array<number>) => {
            if (err) {
              console.error(`Failed to get orientation. Code: ${err.code}, message: ${err.message}`);
              return;
            }
            if (data.length < 3) {
              console.error("Failed to get orientation, length" + data.length);
            }
            console.info("Succeeded in getting data. Z: " + data[0]);
            console.info("Succeeded in getting data. X: " + data[1]);
            console.info("Succeeded in getting data. Y: " + data[2]);
          })
        } catch (error) {
          let e: BusinessError.BusinessError = error as BusinessError.BusinessError;
          console.error(`Failed to get orientation. Code: ${e.code}, message: ${e.message}`);
        }
      })
  }
}