HarmonyOS开发-关于定位功能实现
头像 Q 2022-03-03 17:30:12    发布
1805 浏览 25 点赞 18 收藏

开发者可以调用HarmonyOS位置相关接口,获取设备实时位置,或者最近的历史位置。
首先需要申请定位权限:
ohos.permission.LOCATION
ohos.permission.LOCATION_IN_BACKGROUND
访问设备的位置信息,必须申请ohos.permission.LOCATION权限,并且获得用户授权。
调用其接口获取定位信息,直接上代码:
public class LocatorService{
private static final HiLogLabel TAG = new HiLogLabel(HiLog.INFO,0x0,“蛟龙腾飞—定位”);
private static Locator locator;
private static GeoAddress address;
MyLocatorCallback locatorCallback = new MyLocatorCallback();
// 初始化值
public Location getLocator(Context context){
HiLog.info(TAG,“获取定位”);
// 去除上传申请的address的信息
address.clearLatitude();
address.clearLongitude();
locator = new Locator(context);
// 进行定位
RequestParam requestParam = new RequestParam(RequestParam.SCENE_DAILY_LIFE_SERVICE);
locator.requestOnce(requestParam, locatorCallback);
return null;
}

public class MyLocatorCallback implements LocatorCallback {
    @Override
    public void onLocationReport(Location location) {
        HiLog.info(TAG, "%{public}s","位置: " + location.getLatitude() + "-" + location.getAltitude());
        getLocation(location);
    }

    @Override
    public void onStatusChanged(int type) {
    }

    @Override
    public void onErrorReport(int type) {
        HiLog.info(TAG, "错误: "+type);
    }
}

// 逆地理编码转化
public void getLocation(Location location){
    GeoConvert geoConvert = new GeoConvert();
    try {
        List<GeoAddress> geoAddress= geoConvert.getAddressFromLocation(location.getLatitude(), location.getLongitude(), 1);

        HiLog.info(TAG,"地理位置"+geoAddress.get(0));

        address = geoAddress.get(0);

    } catch (IOException e) {
        e.printStackTrace();
    }
}

// 获取上一次申请的结果
private Location getLastLacation(){
    return locator.getCachedLocation();
}

// 返回值
public GeoAddress getGeoAddress(){
    return address;
}

/*
 *  结束定位
 *  */
public void stopLocator(){
    locator.stopLocating(locatorCallback);
}

}


©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
其它
头像

Q

我还没有写个人简介......

85

帖子

0

提问

245

粉丝

关注
最新发布
热门推荐
地址:北京市朝阳区北三环东路三元桥曙光西里甲1号第三置业A座1508室 商务内容合作QQ:2291221 电话:13391790444或(010)62178877
版权所有:电脑商情信息服务集团 北京赢邦策略咨询有限责任公司
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,我司致力于保护作者版权,如有侵权,请与我司联系删除

京ICP备:2022009079号-2

京公网安备:11010502051901号

ICP证:京B2-20230255