HarmonyOS鸿蒙Next中华为手机支持使用手机原生gps或北斗来获取定位吗?

HarmonyOS鸿蒙Next中华为手机支持使用手机原生gps或北斗来获取定位吗? 功能描述

华为手机的安卓版本和鸿蒙版本,如果不依赖三大地图厂商的情况下,能不能使用手机原生gps或北斗获取定位??有什么方案可以解决??

11 回复

能使用手机原生gps或北斗获取定位。华为原生服务:

Android版本,参考《Android地图服务》《Android定位服务》

鸿蒙版本,参考《Location Kit(位置服务)》《Map Kit(地图服务)》

更多关于HarmonyOS鸿蒙Next中华为手机支持使用手机原生gps或北斗来获取定位吗?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


您好,可以使用华为手机自带的“查找设备”app进行定位,可以查看自己当前位置,也可以添加联系人查询对方的位置。另外也可以在微信聊天窗口点击加号“+”发送当前位置获得定位。

如果您想自己开发一款鸿蒙app的话也可以使用“显示我的位置”地图服务,具体文档如下:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/map-location

可以的!

在实际应用开发过程中,经常需要用到移动终端设备的位置信息,比如查看所在城市天气、出行打车、旅行导航以及观察运动轨迹等。关于位置定位,位置服务提供了两种定位方式,分别为GNSS定位和网络定位,如下表所示:

表1 定位方式介绍

定位方式 说明 优点
GNSS定位 基于全球导航卫星系统,包含GPS、GLONASS、北斗、Galileo等,通过导航卫星、设备芯片提供的定位算法,来确定设备准确位置。 定位精准
网络定位 通过网络进行定位,包括WLAN、蓝牙定位、基站定位。 定位速度快

利用系统的位置定位能力,可以在多种开发场景中获得实时准确的位置信息。本文将介绍如下四种常见的定位场景,并给出其具体实现方案,帮助开发者更好地掌握位置定位的基本原理和开发流程。

  • 当前位置定位:获取设备的当前位置信息。开发者可以根据实际需求将其应用于多种业务场景,如外卖定位、打车定位等。
  • 实时位置定位:持续获取设备的实时位置信息。开发者可以将此能力应用于需要实时定位的场景,如步行导航、驾车出行等。
  • 应用后台定位:将应用切换到后台仍然可以持续获取位置信息。该能力可以用于实现后台应用实时记录运动轨迹等业务场景。
  • 历史定位获取:获取系统缓存的最新位置,即最近一次的历史定位信息。该能力可以用于在设备网络信号较弱或对系统功耗比较敏感的场景下获取位置信息。

当前位置定位

开发者可以根据实际业务诉求,设置相应的定位策略获取设备的当前位置信息,不同定位策略对应表1 定位方式介绍中不同的定位方式。

实现原理

位置服务提供getCurrentLocation()接口来获取当前位置信息,该接口需要用户设置关键参数——定位请求信息。定位请求信息包含定位方式优先级、单次定位超时时间等,分为CurrentLocationRequestSingleLocationRequest两种类型。两种类型对应的定位优先级分别为LocationRequestPriorityLocatingPriority

官方文档:https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-positioning

可以,不需要依赖三方地图 SDK。应用侧建议使用系统位置服务能力获取经纬度,底层会按定位策略使用 GNSS 和网络定位,其中 GNSS 包含 GPS、北斗、GLONASS、Galileo 等卫星系统。

实现上先申请定位权限,例如 ohos.permission.LOCATION 或按版本配置精确/模糊定位权限,然后调用 geoLocationManager.getCurrentLocation()。如果希望优先走卫星定位,可以把定位请求的优先级设为高精度或 GNSS 优先;如果只是城市、天气这类场景,网络定位更快也更省电。

需要注意的是,普通定位接口通常返回经纬度、精度、速度、时间戳等定位结果,不建议业务强依赖“这一次一定来自北斗还是 GPS”。如果确实要判断卫星星座,可再看 GNSS 卫星状态相关能力,但大多数业务只需要判断 sourceType 或定位精度即可。

开发者您好,可以使用手机自带定位系统获取定位。针对API12及以上版本,请参考获取设备的位置信息开发指导,可通过getLastLocation获取系统缓存的最新位置(可减少系统功耗)或者通过getCurrentLocation获取当前位置。

你好,目前华为手机支持GPS和北斗等获取定位

可以通过位置服务获得getCurrentLocation()接口来获取当前位置信息,该接口需要用户设置关键参数——定位请求信息。定位请求信息包含定位方式优先级、单次定位超时时间等,分为CurrentLocationRequestSingleLocationRequest两种类型。两种类型对应的定位优先级分别为LocationRequestPriorityLocatingPriority

GNSS(全球导航卫星系统)定位 基于全球导航卫星系统,包含GPS、GLONASS、北斗、Galileo等,通过导航卫星、设备芯片提供的定位算法,来确定设备准确位置。 通过卫星定位
网络定位 通过网络进行定位,包括WLAN、蓝牙定位、基站定位。 通过网络定位

那肯定支持的,只是要定位的,配置权限,然后直接调用服务就可以了。

权限:

"requestPermissions": [
  {"name": "ohos.permission.FINE_LOCATION"},
  {"name": "ohos.permission.COARSE_LOCATION"}
]

定位获取:

import geoLocationManager from '@ohos.geoLocationManager';

// 定位
async function getNativeLocation() {
  try {
    let location = await geoLocationManager.getCurrentLocation({
      priority: geoLocationManager.LocationRequestPriority.GNSS_FIRST, // 优先GNSS(北斗+GPS)
      timeout: 10000
    });
    console.log("纬度:", location.latitude);
    console.log("经度:", location.longitude);
    console.log("精度(米):", location.accuracy);
   
  } catch (e) {
    console.error("定位失败:", e);
  }
}

可以,

是。HarmonyOS NEXT支持调用设备原生GPS和北斗定位模块,通过Location Kit等API获取定位数据。鸿蒙定位服务兼容多种卫星系统,包括GPS、北斗、GLONASS、Galileo,开发者可直接使用系统定位能力。,

HarmonyOS Next 完全支持直接使用手机原生的 GPS 与北斗卫星定位,无需依赖第三方地图厂商。系统提供 Location Kit(位置服务),通过 GNSS 定位能力(优先级为 LOCATION_PRIORITY_ACCURACYLOCATION_PRIORITY_GNSS_FIRST)即可获取经纬度、速度等原始定位信息,北斗信号也默认参与融合。典型实现只需使用 geoLocationManager.getCurrentLocation() 请求单次定位,或 geoLocationManager.requestLocation() 连续追踪,并在权限授权后直接从回调的 Location 对象中读取坐标。代码示例(ArkTS):

import geoLocationManager from '@ohos.geoLocationManager';

let requestInfo = {
  priority: geoLocationManager.LocationPriority.ACCURACY,
  timeInterval: 0, // 仅请求单次有效
};
geoLocationManager.getCurrentLocation(requestInfo, (err, location) => {
  if (err) { console.error('定位失败'); return; }
  console.log(`纬度: ${location.latitude}, 经度: ${location.longitude}`);
});

此方案不集成任何地图 SDK,完全基于系统原生 GNSS 芯片,安卓版本与 HarmonyOS Next 均可使用对应系统 API 实现。

回到顶部