文档管理中心
最佳实践应用质量功耗应用功耗优化后台任务低功耗后台硬件资源合理使用传感器资源合理使用

传感器资源合理使用

本文导读

应用退至后台时,禁止使用传感器资源。若有正常业务需求,申请后台长时任务后,可在锁屏状态下获取传感器信息。

约束

应用退至后台时,禁止使用传感器资源。若有正常业务需求,申请后台长时任务后,可在锁屏状态下获取传感器信息。

示例

收起
自动换行
深色代码主题
复制
  1. import { UIAbility } from '@kit.AbilityKit';
  2. import { sensor } from '@kit.SensorServiceKit';
  3. import { BusinessError } from '@kit.BasicServicesKit';
  4. import { hilog } from '@kit.PerformanceAnalysisKit';
  5. export default class EntryAbility extends UIAbility {
  6. // ...
  7. onForeground(): void {
  8. try {
  9. //In the foreground, listen to the required type of sensor based on the service requirements
  10. sensor.on(sensor.SensorId.ACCELEROMETER, (data: sensor.AccelerometerResponse) => {
  11. console.info("Succeeded in obtaining data.x:" + data.x + "y:" + data.y + "z:" + data.z);
  12. }, {
  13. interval: 100000000
  14. });
  15. } catch (error) {
  16. let err = error as BusinessError;
  17. hilog.warn(0x000, 'testTag', `sensor on failed, code=${err.code}, message=${err.message}`);
  18. }
  19. }
  20. onBackground(): void {
  21. try {
  22. //The backstage cancels the listening
  23. sensor.off(sensor.SensorId.ACCELEROMETER);
  24. } catch (error) {
  25. let err = error as BusinessError;
  26. hilog.warn(0x000, 'testTag', `sensor off failed, code=${err.code}, message=${err.message}`);
  27. }
  28. }
  29. }

有关传感器开发相关接口的使用,详情可以参考传感器开发指导