摘要:目標(biāo)通過(guò)微信小程序?qū)崿F(xiàn)來(lái)實(shí)現(xiàn)跑步類的功能。核心功能一連接藍(lán)牙設(shè)備初始化藍(lán)牙適配器。遇到的問(wèn)題微信小程序的功能缺陷設(shè)備在息屏和后臺(tái)運(yùn)行的情況下均無(wú)法正常調(diào)用,只有切換到前臺(tái)運(yùn)行時(shí),才能正常使用使用的是蘋(píng)果。
背景
微信小程序興起,有變成超級(jí)APP的趨勢(shì),通過(guò)微信提供的小程序api,可以通過(guò)微信調(diào)用到手機(jī)原生的支持。
目標(biāo)通過(guò)微信小程序?qū)崿F(xiàn)來(lái)實(shí)現(xiàn)跑步類App的功能。
需求分析跑步類App需要的兩個(gè)核心的數(shù)據(jù)是:心率,GPS。(當(dāng)然有些App沒(méi)有鏈接心率設(shè)備,那就不要獲取實(shí)時(shí)心率了)。
工具到微信公眾平臺(tái)申請(qǐng)小程序賬號(hào),下載微信開(kāi)發(fā)者工具(預(yù)覽功能可以讓手機(jī)掃一掃預(yù)覽小程序)。
核心功能一:連接藍(lán)牙設(shè)備1.初始化藍(lán)牙適配器 openBluetoothAdapter。
2.獲取藍(lán)牙適配器狀態(tài)getBluetoothAdapterState,如果藍(lán)牙可用則,則尋找附近設(shè)備;如果不可用,則提示藍(lán)牙未開(kāi)啟并監(jiān)聽(tīng)藍(lán)牙狀態(tài)onBluetoothAdapterStateChange。
3.開(kāi)始尋找附近設(shè)備startBluetoothDevicesDiscovery,找到附近的藍(lán)牙列表getBluetoothDevices,并同時(shí)監(jiān)聽(tīng)onBluetoothDeviceFound,發(fā)現(xiàn)新設(shè)備則添加到藍(lán)牙列表中。
4.在藍(lán)牙列表選擇藍(lán)牙設(shè)備,獲取對(duì)應(yīng)的deviceId。
5.創(chuàng)建藍(lán)牙連接createBLEConnection,以deviceId為參數(shù),創(chuàng)建成功后調(diào)用stopBluetoothDevicesDiscovery方法,停止尋找藍(lán)牙設(shè)備(尋找設(shè)備需要花費(fèi)大量資源)。
6.獲取藍(lán)牙設(shè)備服務(wù)getBLEDeviceServices,拿到serviceId。
7.獲取該設(shè)備所有特征值getBLEDeviceCharacteristics,拿到characterId,至此連接設(shè)備的三個(gè)參數(shù)都拿到了(deviceId,serviceId,characterId)。
8.開(kāi)啟notify通信notifyBLECharacteristicValueChange。
9.監(jiān)聽(tīng)onBLECharacteristicValueChange傳輸?shù)南?,到這一步藍(lán)牙設(shè)備實(shí)時(shí)發(fā)送的消息就接收到了。
核心功能二:獲取手機(jī)GPS調(diào)用wx的api,getLocation即可調(diào)用當(dāng)前的GPS信息、速度、海拔等,計(jì)算gps兩點(diǎn)之間的距離就可以獲取整段距離,調(diào)用小程序的map組件可以將整段的GPS繪制成跑步路線。
遇到的問(wèn)題微信小程序api的getLocation功能缺陷:
Ios設(shè)備在息屏和后臺(tái)運(yùn)行的情況下getLocation均無(wú)法正常調(diào)用,只有切換到前臺(tái)運(yùn)行時(shí),才能正常使用(使用的是蘋(píng)果7)。
Android設(shè)備部分設(shè)備在息屏和后臺(tái)運(yùn)行情況下getLocation無(wú)法正常調(diào)用(本人實(shí)測(cè),華為mate10 后臺(tái)+息屏情況下無(wú)法調(diào)用,但是honor7X在各種情況下均能正常調(diào)用)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/92762.html
摘要:目標(biāo)通過(guò)微信小程序?qū)崿F(xiàn)來(lái)實(shí)現(xiàn)跑步類的功能。核心功能一連接藍(lán)牙設(shè)備初始化藍(lán)牙適配器。遇到的問(wèn)題微信小程序的功能缺陷設(shè)備在息屏和后臺(tái)運(yùn)行的情況下均無(wú)法正常調(diào)用,只有切換到前臺(tái)運(yùn)行時(shí),才能正常使用使用的是蘋(píng)果。 背景 微信小程序興起,有變成超級(jí)APP的趨勢(shì),通過(guò)微信提供的小程序api,可以通過(guò)微信調(diào)用到手機(jī)原生的支持。 目標(biāo) 通過(guò)微信小程序?qū)崿F(xiàn)來(lái)實(shí)現(xiàn)跑步類App的功能。 需求分析 跑步類Ap...
摘要:目標(biāo)通過(guò)微信小程序?qū)崿F(xiàn)來(lái)實(shí)現(xiàn)跑步類的功能。核心功能一連接藍(lán)牙設(shè)備初始化藍(lán)牙適配器。遇到的問(wèn)題微信小程序的功能缺陷設(shè)備在息屏和后臺(tái)運(yùn)行的情況下均無(wú)法正常調(diào)用,只有切換到前臺(tái)運(yùn)行時(shí),才能正常使用使用的是蘋(píng)果。 背景 微信小程序興起,有變成超級(jí)APP的趨勢(shì),通過(guò)微信提供的小程序api,可以通過(guò)微信調(diào)用到手機(jī)原生的支持。 目標(biāo) 通過(guò)微信小程序?qū)崿F(xiàn)來(lái)實(shí)現(xiàn)跑步類App的功能。 需求分析 跑步類Ap...
摘要:微信小程序中的每一個(gè)頁(yè)面的路徑頁(yè)面名都需要寫(xiě)在的中,且中的第一個(gè)頁(yè)面是小程序的首頁(yè)。真機(jī)運(yùn)行截圖運(yùn)行于,微信版本功能能夠計(jì)算里程時(shí)間實(shí)時(shí)獲取跑步路徑有些粗糙思路主要使用了微信小程序的獲取位置和地圖組件。 首發(fā)地址 一、準(zhǔn)備工作 1、注冊(cè)一個(gè)小程序賬號(hào),得用一個(gè)沒(méi)注冊(cè)過(guò)公眾號(hào)的郵箱注冊(cè)。2、注冊(cè)過(guò)程中需要很多認(rèn)證,有很多認(rèn)證,比較繁瑣,如果暫時(shí)只是開(kāi)發(fā)測(cè)試,不進(jìn)行提審、發(fā)布的話,只要完成...
摘要:微信小程序中的每一個(gè)頁(yè)面的路徑頁(yè)面名都需要寫(xiě)在的中,且中的第一個(gè)頁(yè)面是小程序的首頁(yè)。真機(jī)運(yùn)行截圖運(yùn)行于,微信版本功能能夠計(jì)算里程時(shí)間實(shí)時(shí)獲取跑步路徑有些粗糙思路主要使用了微信小程序的獲取位置和地圖組件。 首發(fā)地址 一、準(zhǔn)備工作 1、注冊(cè)一個(gè)小程序賬號(hào),得用一個(gè)沒(méi)注冊(cè)過(guò)公眾號(hào)的郵箱注冊(cè)。2、注冊(cè)過(guò)程中需要很多認(rèn)證,有很多認(rèn)證,比較繁瑣,如果暫時(shí)只是開(kāi)發(fā)測(cè)試,不進(jìn)行提審、發(fā)布的話,只要完成...
閱讀 3794·2021-10-15 09:42
閱讀 2678·2021-09-03 10:50
閱讀 1721·2021-09-03 10:28
閱讀 1840·2019-08-30 15:54
閱讀 2581·2019-08-30 12:46
閱讀 467·2019-08-30 11:06
閱讀 2876·2019-08-30 10:54
閱讀 600·2019-08-29 12:59