• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

鸿蒙手表定位功能Demo体验适用儿童老年和外出旅游安全市场

android 搞代码 3年前 (2022-03-30) 76次浏览 已收录 0个评论

针对儿童和老人,可穿戴的智能手表用途很大。市场也有许多相似的产品,反对接打电话、领取扫码、定位等性能,属于新兴的商业机会。依靠华为品牌,鸿蒙手表也致力为用户打造精品的、产品质量佳、可穿戴的智能体验。对此,HMS Core 定位服务(Location Kit)能够提供三个次要能力,包含交融定位、流动辨认和天文围栏。接下来,小编邀请开发者们通过简略疾速的几步,体验定位服务在鸿蒙手表上开发的定位性能。

一、 定位服务的劣势和限度

  1. 定位低功耗:利用芯片实现天文围栏,功耗更低。
  2. 定位高精度:优化城市峡谷下路线两侧的定位准确率,准确率高。基于RTK(Real – time kinematic)技术,实现开阔地亚米级高精定位能力。
  3. 最新版本SDK须要用户手机上安装HMS Core(APK)6.0.0以上版本。若未装置,或装置了其余版本的HMS Core(APK),性能能够失常应用,但不反对版本主动降级。
  4. HarmonyOS通过数字证书和Profile文件来对利用进行管控,只有签名过的HarmonyOS Ability Package(以下简称“HAP”)才被容许装置到设施上运行。

二、 Demo介绍

为了让开发者更好的理解鸿蒙手表定位性能的实现,这里提供了一个简略的集成案例,邀请大家用简略的代码运行Demo。代码能力包含申请回调定位性能,获取缓存定位信息,查问定位信息是否可用及查看设置权限等

三、 开发实战

上面为开发者们介绍如何依据源代码将这个Demo运行起来,以便于理解实现细节。

开发筹备

1. 工具筹备

测试设施 HarmonyOS 2.0及以上的华为智能手表

开发工具 DevEco Studio 2.1.0.201及以上

2. 开发前筹备

1) 注册成为华为开发者,创立一个利用

参考定位服务开发筹备在华为利用市场创立一个您的利用。

2) 生成数字证书和Profile文件

具体步骤包含申请利用调试证书、注册调试设施和申请调试Profile ,配置签名信息。

3) 生成签名证书指纹 ,配置签名证书指纹。

4) 集成HMS Core SDK

• 将AGC的agconnect-services.json文件下载到本地,并放利用级根目录 “entry\src\main\resources\rawfile” 门路下。

• 在文件头部申明下一行增加如下配置apply plugin: ‘com.huawei.agconnect’. 我的项目级“build.gradle”文件,增加Maven仓地址和agconnect服务依赖。

buildscript {
    repositories {
        maven {url 'https://repo.huaweicloud.com/repository/maven/'}
        // 配置HMS Core SDK的Maven仓地址
        maven {url 'https://developer.huawei.com/repo/'}
        jcenter()
    }
    dependencies {
        classpath 'com.huawei.ohos:hap:2.4.4.2'
        // 增加agconnect服务依赖
        classpath 'com.huawei.agconnect:agcp-harmony:1.1.0.300'
        classpath 'com.huawei.ohos:decctest:1.2.4.0'
    }
}

allprojects {
    repositories {
        maven {url 'https://repo.huaweicloud.com/repository/maven/'}
        // 配置HMS Core SDK的Maven仓地址
        maven {url 'https://developer.huawei.com/repo/'}
        jcenter()
    }
}

• 利用级的build.gradle文件增加依赖(理论中依照须要设置版本号) 或者在本地“libs”目录放在Location Kit的har包。

dependencies {
implementation 'com.huawei.hms:location-ohos:6.0.0.300'
// agconnect依赖组件
implementation 'com.huawei.agconnect:agconnect-core-harmony:1.1.0.300'
}

• 如需混同代码 关上利用级根目录下的混同配置文件“proguard-rules.pro”,退出排除HMS Core SDK的混同配置。

运行示例利用成果展现

1. 申明零碎权限 在“config.json”文件中的“reqPermissions”字段中增加下列权限

采纳HarmonyOS提供了两种地位权限:ohos.permission.LOCATION (地位权限)和ohos.permission.LOCATION_IN_BACKGROUND(后盾定位权限)。留神还须要网络权限。

"reqPermissions": [
   {
    "reason": "get Local Location",
    "name": "ohos.permission.LOCATION",
    "usedScene": {
      "ability": [
        "com.huawei.codelab.MainAbility",
      ],
      "when": "always"
    }
  },
  {
    "name": "ohos.permission.GET_NETWORK_INFO"
  },
  {
    "name": "ohos.permission. LOCATION_IN_BACKGROUND"
  }
  1. 在代码中动静申请“ohos.permission.LOCATION ”和“ohos.permission.LOCATION_IN_BACKGROUND”权限

    //以location权限为例
    if (verifySelfPermission("ohos.permission.LOCATION") != IBundleManager.PERMISSION_GRANTED) {
        printLog(HiLog.INFO, TAG, "Self: LOCATION permission not granted!");
        if (canRequestPermission("ohos.permission.LOCATION")) {
      printLog(HiLog.INFO, TAG, "Self: can request permission here");
      requestPermissionsFromUser(
              new String[]{"ohos.permission.LOCATION"}, REQUEST_CODE);
        } else {
      printLog(HiLog.WARN, TAG, "Self: enter settings to set permission");
        }
    } else {
        printLog(HiLog.INFO, TAG, "Self: LOCATION permission granted!");
    }

    要害代码阐明

1. 创立定位服务客户端

在基类BaseAbilitySlice中的onStart()办法中创立一个FusedLocationProviderClient实例,通过该实例调用定位相干接口。

public FusedLocationProviderClient fusedLocProviderClient;
@Override
protected void onStart(Intent intent) {
    super.onStart(intent);
    fusedLocProviderClient = new FusedLocationClient(this);
}

2. 查看设施定位设置

调用LocationRequest设置定位申请参数(包含设置地位更新的距离(毫秒:单位),权重,返回地址信息的语言等),并在申请回调之前调用定位服务查看定位相干设置。

private void checkLocationSettings() {
    LocationRequest locationRequest = new LocationRequest();
    locationRequest.setPriority(100);
    LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
    LocationSettingsRequest request =
            builder.addLocationRequest(locationRequest).setAlwaysShow(false).setNeedBle(false).build();
    settingsClient.checkLocationSettings(request)
            .addOnSuccessListener(response -> {
                // 设置胜利定位条件
            })
            .addOnFailureListener(exp -> {
                // 设置不满足定位条件
            });
}

3. 定位性能相干实现步骤

调用requestLocationUpdates()进行继续定位。

fusedLocProviderClient.requestLocationUpdates(locationRequest, locationCallback)
        .addOnSuccessListener(var -> {
            // 接口调用胜利的解决
        })
        .addOnFailureListener(e -> {
            // 接口调用失败的解决           
        });

调用removeLocationUpdates()进行地位更新。

//留神:进行地位更新时,mLocationCallback与requestLocationUpdates()中的LocationCallback参数为同一对象。
fusedLocProviderClient.removeLocationUpdates(locationCallback)
        .addOnSuccessListener(var -> {
            // 接口调用胜利的解决
        })
        .addOnFailureListener(e -> {
            // 接口调用失败的解决        
        });

定义地位更新回调。

LocationCallback locationCallback = new LocationCallback() {
    @Override
    public void onLocationResult(LocationResult locationResult) {
        if (locationResult != null) {
            // 解决地位回调后果
        }
    }
    @Override
    public void onLocationAvailability(LocationAvailability locationAvailability) {
        super.onLocationAvailability(locationAvailability);
        if (locationAvailability != null) {
            // 解决地位状态
        }
    }
};

相干参数阐明

1. 设置定位类型,如果申请GNSS地位,则值为100;如申请网络地位,则值为102或104;如不须要被动申请地位,仅需被动接管地位,则值为105。

2. 定位设置的语言。以后仅反对EN和CN。

3. setNumUpdates申请地位的回调次数,如果值为3时,则只回调3次后果给客户端。如果想要始终继续回调尽量应用默认值。

欲了解更多HMS Core 定位服务详情,请参阅:
https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/introduction-0000001050706106?ha_source=hms1
华为开发者联盟官网:
https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/harmonyos-introduction-0000001121618904?ha_source=hms1
下载demo和示例代码请到Github:
https://github.com/HMS-Core/hms-location-demo-harmonyos
解决集成问题请到Stack Overflow:
https://stackoverflow.com/questions/tagged/huawei-mobile-services?tab=Newest

理解更多详情>>

拜访华为开发者联盟官网
获取开发领导文档
华为挪动服务开源仓库地址:GitHub、Gitee

关注咱们,第一工夫理解 HMS Core 最新技术资讯~


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:鸿蒙手表定位功能Demo体验适用儿童老年和外出旅游安全市场

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址