六一節就要到了,越來越多的家庭開始選擇兒童手表作為禮物送給孩子們。各種數據表明,不論在海外還是國內,兒童手表的出貨量持續快速的增長。在中國,兒童手表幾乎成為孩子們的最貼身的伙伴,中國市場的占比高達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/consumer/cn/forum/topic/0202579274146220076?fid=18
原作者:胡椒