HarmonyOS 获取位置信息

news/2024/7/21 12:27:32 标签: harmonyos

1. HarmonyOS 获取位置信息

1.1. 官方文档

权限申请
位置服务

1.2. 权限申请

1.2.1. 配置位置权限信息

    "requestPermissions": [
     //API9之前只申请这个就可以米级定位
      {'name':  'ohos.permission.LOCATION'},//API9之前申请的权限
      //API9后两个权限同时申请才可以获取米级定位,只下边一个权限只能精准到5公里
      {'name':  'ohos.permission.APPROXIMATELY_LOCATION'},//API9及之后需要增加申请的权限
      {
        "name": 'ohos.permission.LOCATION_IN_BACKGROUND'
      }
    ],

1.2.2. 权限申请

  访问设备的位置信息,必须申请权限,并且获得用户授权(src/main/ets/entryability/EntryAbility.ts里申请)

import abilityAccessCtrl from '@ohos.abilityAccessCtrl'
 async onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): Promise<void>  {
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
    let manger = abilityAccessCtrl.createAtManager()
    try {
      await manger.requestPermissionsFromUser(this.context,
        [
          'ohos.permission.MEDIA_LOCATION',
          'ohos.permission.LOCATION',
          'ohos.permission.APPROXIMATELY_LOCATION',
        ])
    } catch (err) {
      promptAction.showToast({ message: '获取位置信息失败!' })
    }
  }

在这里插入图片描述

1.3. 逻辑代码

import UIAbility from '@ohos.app.ability.UIAbility';
import hilog from '@ohos.hilog';
import window from '@ohos.window';
import abilityAccessCtrl from '@ohos.abilityAccessCtrl'
import promptAction from '@ohos.promptAction';

export default class EntryAbility extends UIAbility {
  async onCreate(want, launchParam) {
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
    let manger = abilityAccessCtrl.createAtManager()
    try {
      await manger.requestPermissionsFromUser(this.context,
        [
          'ohos.permission.MEDIA_LOCATION',
          'ohos.permission.LOCATION',
          'ohos.permission.APPROXIMATELY_LOCATION',
        ])
    } catch (err) {
      console.log( '获取位置信息失败!'+err);
      promptAction.showToast({ message: '获取位置信息失败!' })
    }
  }

  onDestroy() {
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy');
  }

  onWindowStageCreate(windowStage: window.WindowStage) {
    // Main window is created, set main page for this ability
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');

    windowStage.loadContent('pages/Main', (err, data) => {
      if (err.code) {
        hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
        return;
      }
      hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? '');
    });
  }

  onWindowStageDestroy() {
    // Main window is destroyed, release UI related resources
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');
  }

  onForeground() {
    // Ability has brought to foreground
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground');
  }

  onBackground() {
    // Ability has back to background
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground');
  }
}

在这里插入图片描述


http://www.niftyadmin.cn/n/5410399.html

相关文章

MySQL 篇-深入了解多表设计、多表查询

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 多表设计概述 1.1 多表设计 - 一对多 1.2 多表设计 - 一对一 1.3 多表设计 - 多对多 2.0 多表查询概述 2.1 多表查询 - 内连接 2.2 多表查询 - 外连接 2.3 多表查…

LeetCode 刷题 [C++] 第98题.验证二叉搜索树

题目描述 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 题目分析 由题…

跨界电商、游戏技与代理IP的关联

在当今数字化时代&#xff0c;跨界电商与游戏技术的迅速发展为商业与娱乐带来了无限可能。然而&#xff0c;随着互联网的普及&#xff0c;网络安全问题也日益突出。在这个背景下&#xff0c;我们不得不重新审视代理IP与出海、socks5代理等技术之间的联系&#xff0c;以及它们对…

docker-compose部署redis集群

新建目录准备配置文件 mkdir -p /u01/redis_cluster/redis-{1..6}每个redis下面放入redis.conf* bind 10.172.0.2 #容器IP port 6379 #不同端口 requirepass 123456 masterauth 123456 cluster-config-file nodes_637…

Python爬虫:设置随机 User-Agent

Python爬虫&#xff1a;设置随机 User-Agent 在Python中编写爬虫时&#xff0c;为了模拟真实用户的行为并防止被服务器识别为爬虫&#xff0c;通常需要设置随机的User-Agent。你可以使用fake-useragent库来实现这一功能。首先&#xff0c;你需要安装fake-useragent库&#xff…

冒泡排序及其改进算法:深入理解与实践

冒泡排序及其改进算法&#xff1a;深入理解与实践 冒泡排序&#xff08;Bubble Sort&#xff09; 冒泡排序是一种简单的排序算法&#xff0c;它重复地遍历要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复进行…

Docker安装MySQL镜像实战分享

今天我们对Docker安装MySQL镜像进行实战分享&#xff0c;以更深入的了解容器的使用场景。我们在云付服务器Ubuntu环境上已经安装好了Docker&#xff0c;接下来我们开始安装mysql5.7版本&#xff0c;安装mysql有两种思路&#xff0c;直接拉取mysql镜像和自己做mysql镜像&#xf…

【kubernetes】关于k8s集群如何将pod调度到指定node节点?

目录 一、k8s的watch机制 二、scheduler的调度策略 Predicate&#xff08;预选策略&#xff09; 常见算法&#xff1a; priorities&#xff08;优选策略&#xff09;常见的算法有&#xff1a; 三、k8s的标签管理之增删改查 四、k8s的将pod调度到指定node的方法 方案一&am…