乐趣区

关于android:HMS-Core-成长相伴为孩子戴来安全的六一节礼物

六一节就要到了,越来越多的家庭开始抉择儿童手表作为礼物送给孩子们。各种数据表明,不管在海内还是国内,儿童手表的出货量继续疾速的增长。在中国,儿童手表简直成为孩子们的最贴身的搭档,中国市场的占比高达 95%,成为寰球儿童手表最生机勃勃的市场 1。

纵观近三年的儿童手表发展趋势,以小蠢才为主的 TOP3 的厂商集中在中高档位的价值区,而中低档位的市场散布也较为均匀稳固,这样,给孩子和家长带来的抉择相对来说较为多。华为作为儿童手表市场近些年的新入局者,提供了通话、定位、平安等一系列的智能关心场景,受到了孩子们和家长的欢送和好评。

通过和市面上的用户访谈发现,在小学阶段儿童手表曾经成为了普适产品,年级越低的孩子越喜爱,而年级越高的孩子对功能性和样式要求越高。因而,性能、外观、口碑未然是消费者购买儿童手表思考的次要因素,而现在平安、沟通则是大多数家长最为关怀的外围能力。作为家长,须要随时理解孩子以后处于什么地位,使得孩子在学校室内流动、室外野炊、上下学路上等各种场合中,最大限度的保障孩子的平安,让家长动静、实时理解孩子的口头轨迹,甚至在紧急时候及时地提供沟通对话。因而,晋升续航能力、晋升定位精准度,是决定儿童手表举荐与否的外围诉求。

咱们晓得,定位能力的精准度取决于基站、卫星、Wi-Fi 等多种信号因素,天气和周边环境也是决定定位胜利与否、精确与否的参考因素。而儿童手表定位作为在非手机侧的一种定位场景,大多数是无奈实现多种信号交融的定位模式。然而,孩子佩戴后的定位精准度,对于家长是至关重要的诉求,既然这样,如何晋升手表上的定位精度呢,咱们介绍下 Petal Maps Platform 定位能力,可帮忙手表厂商实现国内,乃至海内定位无缝连接。

儿童手表集成网络定位服务后,能够无效晋升定位体验,简略易开发,升高保护老本。同时,当孩子在室内时,手表能够定位到楼层以及左近的 POI,可实时反馈给家长,帮忙找回在商场跑动的孩子,大幅度降低儿童在室内走丢的危险。在国内,综合网络定位成功率高达 99%,在海内,网络定位成功率与其它厂商持平 2。

能够设想一下,借助 Petal Maps Platform 的网络定位,室内高精度定位,家长便可查看孩子在地图上的地位以及当天的流动历史,确保孩子不会拜访危险的中央。借助 Petal Maps Platform 的低功耗天文围栏性能,家长能够查看孩子是否准时来到学校,理解他们何时来到学校,流动以及他们何时回家。当利用在后盾休眠的状况下,家长仍能及时收到信息推送。

当然,除了以上介绍的儿童手表外,智能手表和手机利用均能实现高精度定位能力,在国内和海内,集成 Location Kit 取得高精度定位体验的场景枚不胜数。滴滴出行实现城市打车不错边,华为静止衰弱低功耗地计步生成静止记录等。

有了这样弱小能力的儿童手表、智能手表的保驾护航,置信他们都能够成为孩子和家长在儿童节的心动礼物抉择

以后,Location Kit 的网络定位采纳 REST API 模式,不受限于零碎环境,在 Android、iOS、Web 页面、Windows 利用等环境都能够获取定位数据。上面简略介绍下网络定位的开发示例教程。

开发筹备
1、在华为 AppGallery Connect 网站创立利用

2、拷贝利用的 API Key

开发步骤
1. 获取设施网络信息:目前网络定位反对的网络参数次要有两种,Wi-Fi 信息或蜂窝网络信息。本文采纳的是依据 WLAN 信息的形式。

public WifiInfo getWIFIInfo(Context context) {WifiManager wifiMgr = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
      return wifiMgr.getConnectionInfo();}

2. 结构网络定位申请:参考 API 文档,结构 json 格局的申请音讯体。
public String getRequestBody(WifiInfo[] wifiInfos) {

 try {JSONObject request = new JSONObject();
           request.put("boottime", SystemClock.elapsedRealtime() * 1000);
           request.put("indoorMode", 0);
 
           JSONArray infos = new JSONArray();
           for (int i = 0; i < wifiInfos.length; i++) {JSONObject wifiInfo = new JSONObject();
                 wifiInfo.put("mac", wifiInfos[i].getMacAddress());
                 wifiInfo.put("rssi", wifiInfos[i].getRssi());
                 wifiInfo.put("time", SystemClock.elapsedRealtime() * 1000);
                 infos.put(wifiInfo);
           }
           request.put("wifiInfos", wifiInfos);
           return request.toString();} catch (JSONException e) {e.printStackTrace();
           return "";
      }
}

3. 申请网络定位

private String getNetworkLocation(String body, String apiKey) {HttpClient httpClient = new HttpClient.Builder().readTimeout(5000).connectTimeout(5000).build();
      Request.Builder requestBuilder = httpClient.newRequest().url("https://locationapi.cloud.huawei.com/networklocation/v1/geoLocation").method("POST");
      // 设置 Request Header
      requestBuilder.addHeader("Authorization", "Bearer" + apiKey);
      requestBuilder.addHeader("Content-Type", "application/json");
      requestBuilder.requestBody(new RequestBody() {
           @Override
           public String contentType() {return "application/json";}
          
           @Override
           public void writeTo(OutputStream outputStream) throws IOException {outputStream.write(body.getBytes(Charset.defaultCharset()));
                 outputStream.flush();}
      });
     
      try {Response<ResponseBody> response = httpClient.newSubmit(requestBuilder.build()).execute();
           if (response.getCode() == 200) {InputStream is = response.getBody().getInputStream();
                 ByteArrayOutputStream message = new ByteArrayOutputStream();
                 int len = 0;
                 byte[] buffer = new byte[1024];
                 while ((len = is.read(buffer)) != -1) {message.write(buffer, 0, len);
                 }
                 is.close();
                 message.close();
                 return new String(message.toByteArray(), Charset.defaultCharset());
           }
      } catch (IOException e) {Log.e(TAG, e.getMessage(), e);
      }
      return null;
}

开发成果
编译装置实现后,连贯 Wi-Fi,开启利用,就能够仅通过网络定位失去用户的地位,后果如下。

{
    "indoor": 0,
    "errorCode": "0",
    "position": {
        "acc": 14.400121,
        "bearing": 0.0,
        "floorAcc": 0,
        "flags": 17,
        "lon": 113.86621570429958,
        "speed": 0.0,
        "mode": 0,
        "time": 0,
        "floor": 0,
        "indoorFlag": 0,
        "lat": 22.881333903191347
    },
    "locateType": "Wifi",
    "extraInfo": {
        "wifiExtraInfo": {
            "resultCode": 0,
            "macDetails": [
                0,
                1,
                2
            ],
            "extraPosition": {
                "acc": 23.040194,
                "bearing": 0.0,
                "flags": 17,
                "lon": 113.86621570429958,
                "speed": 0.0,
                "mode": 0,
                "lat": 22.881333903191347
            }
        }
    },
    "errorMsg": "Success"
}

1、数据来源于第三方报告

2、数据来源于华为外部实验室测试后果

原文链接:https://developer.huawei.com/…
原作者:胡椒

退出移动版