实现后台持续定位功能鸿蒙示例代码 原创

鸿蒙场景化示例代码技术工程师
发布于 2025-4-8 11:24
3248浏览
0收藏

本文原创发布在华为开发者社区

介绍

本示例演示的是申请定位权限之后,可以在后台持续进行上传定位及位置信息。

实现后台持续定位功能源码链接

效果预览

实现后台持续定位功能鸿蒙示例代码-鸿蒙开发者社区

使用说明

点击申请权限,点击申请长时任务可以在控制栏看到持续进行定位。

实现思路

 startContinuousTask() {
    let wantAgentInfo: wantAgent.WantAgentInfo = {
      // 点击通知后,将要执行的动作列表
      // 添加需要被拉起应用的bundleName和abilityName
      wants: [
        {
          bundleName: "com.example.BackgroundTaskDemo",
          abilityName: "EntryAbility"
        }
      ],
      // 指定点击通知栏消息后的动作是拉起ability
      actionType: wantAgent.OperationType.START_ABILITY,
      // 使用者自定义的一个私有值
      requestCode: 0,
      // 点击通知后,动作执行属性
      actionFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
    };

    // 后台持续定位配置
    let request: geoLocationManager.ContinuousLocationRequest =
      { 'interval': 5, 'locationScenario': geoLocationManager.UserActivityScenario.NAVIGATION };


    // 通过wantAgent模块下getWantAgent方法获取WantAgent对象
    wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj: WantAgent) => {
      let list: Array<string> = ["location"];
      backgroundTaskManager.startBackgroundRunning(this.context, list, wantAgentObj)
        .then((res: backgroundTaskManager.ContinuousTaskNotification) => {
          hilog.info(0x0000, 'testTag',"Operation startBackgroundRunning succeeded");
          // 开启后台持续定位
          try {
            geoLocationManager.on('locationChange', request, this.locationCallback);
          } catch (err) {
            hilog.error(0x0000, 'testTag',"errCode:" + JSON.stringify(err));
          }
        })
        .catch((error: BusinessError) => {
          hilog.error(0x0000, 'testTag',`Operation startBackgroundRunning failed. code is ${error.code} message is ${error.message}`);
        });
    });
  }
  • 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.

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
收藏
回复
举报


回复
    相关推荐
    恭喜您,今日已阅读两篇内容,特奖励+2声望, 快来领取吧。