摘要:目標(biāo)通過微信小程序?qū)崿F(xiàn)來實(shí)現(xiàn)跑步類的功能。核心功能一連接藍(lán)牙設(shè)備初始化藍(lán)牙適配器。遇到的問題微信小程序的功能缺陷設(shè)備在息屏和后臺運(yùn)行的情況下均無法正常調(diào)用,只有切換到前臺運(yùn)行時(shí),才能正常使用使用的是蘋果。
背景
微信小程序興起,有變成超級APP的趨勢,通過微信提供的小程序api,可以通過微信調(diào)用到手機(jī)原生的支持。
目標(biāo)通過微信小程序?qū)崿F(xiàn)來實(shí)現(xiàn)跑步類App的功能。
需求分析跑步類App需要的兩個(gè)核心的數(shù)據(jù)是:心率,GPS。(當(dāng)然有些App沒有鏈接心率設(shè)備,那就不要獲取實(shí)時(shí)心率了)。
工具到微信公眾平臺申請小程序賬號,下載微信開發(fā)者工具(預(yù)覽功能可以讓手機(jī)掃一掃預(yù)覽小程序)。
核心功能一:連接藍(lán)牙設(shè)備1.初始化藍(lán)牙適配器 openBluetoothAdapter。
2.獲取藍(lán)牙適配器狀態(tài)getBluetoothAdapterState,如果藍(lán)牙可用則,則尋找附近設(shè)備;如果不可用,則提示藍(lán)牙未開啟并監(jiān)聽藍(lán)牙狀態(tài)onBluetoothAdapterStateChange。
3.開始尋找附近設(shè)備startBluetoothDevicesDiscovery,找到附近的藍(lán)牙列表getBluetoothDevices,并同時(shí)監(jiān)聽onBluetoothDeviceFound,發(fā)現(xiàn)新設(shè)備則添加到藍(lán)牙列表中。
4.在藍(lán)牙列表選擇藍(lán)牙設(shè)備,獲取對應(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.開啟notify通信notifyBLECharacteristicValueChange。
9.監(jiān)聽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繪制成跑步路線。
遇到的問題微信小程序api的getLocation功能缺陷:
Ios設(shè)備在息屏和后臺運(yùn)行的情況下getLocation均無法正常調(diào)用,只有切換到前臺運(yùn)行時(shí),才能正常使用(使用的是蘋果7)。
Android設(shè)備部分設(shè)備在息屏和后臺運(yùn)行情況下getLocation無法正常調(diào)用(本人實(shí)測,華為mate10 后臺+息屏情況下無法調(diào)用,但是honor7X在各種情況下均能正常調(diào)用)。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/92762.html
摘要:目標(biāo)通過微信小程序?qū)崿F(xiàn)來實(shí)現(xiàn)跑步類的功能。核心功能一連接藍(lán)牙設(shè)備初始化藍(lán)牙適配器。遇到的問題微信小程序的功能缺陷設(shè)備在息屏和后臺運(yùn)行的情況下均無法正常調(diào)用,只有切換到前臺運(yùn)行時(shí),才能正常使用使用的是蘋果。 背景 微信小程序興起,有變成超級APP的趨勢,通過微信提供的小程序api,可以通過微信調(diào)用到手機(jī)原生的支持。 目標(biāo) 通過微信小程序?qū)崿F(xiàn)來實(shí)現(xiàn)跑步類App的功能。 需求分析 跑步類Ap...
摘要:目標(biāo)通過微信小程序?qū)崿F(xiàn)來實(shí)現(xiàn)跑步類的功能。核心功能一連接藍(lán)牙設(shè)備初始化藍(lán)牙適配器。遇到的問題微信小程序的功能缺陷設(shè)備在息屏和后臺運(yùn)行的情況下均無法正常調(diào)用,只有切換到前臺運(yùn)行時(shí),才能正常使用使用的是蘋果。 背景 微信小程序興起,有變成超級APP的趨勢,通過微信提供的小程序api,可以通過微信調(diào)用到手機(jī)原生的支持。 目標(biāo) 通過微信小程序?qū)崿F(xiàn)來實(shí)現(xiàn)跑步類App的功能。 需求分析 跑步類Ap...
摘要:微信小程序中的每一個(gè)頁面的路徑頁面名都需要寫在的中,且中的第一個(gè)頁面是小程序的首頁。真機(jī)運(yùn)行截圖運(yùn)行于,微信版本功能能夠計(jì)算里程時(shí)間實(shí)時(shí)獲取跑步路徑有些粗糙思路主要使用了微信小程序的獲取位置和地圖組件。 首發(fā)地址 一、準(zhǔn)備工作 1、注冊一個(gè)小程序賬號,得用一個(gè)沒注冊過公眾號的郵箱注冊。2、注冊過程中需要很多認(rèn)證,有很多認(rèn)證,比較繁瑣,如果暫時(shí)只是開發(fā)測試,不進(jìn)行提審、發(fā)布的話,只要完成...
摘要:微信小程序中的每一個(gè)頁面的路徑頁面名都需要寫在的中,且中的第一個(gè)頁面是小程序的首頁。真機(jī)運(yùn)行截圖運(yùn)行于,微信版本功能能夠計(jì)算里程時(shí)間實(shí)時(shí)獲取跑步路徑有些粗糙思路主要使用了微信小程序的獲取位置和地圖組件。 首發(fā)地址 一、準(zhǔn)備工作 1、注冊一個(gè)小程序賬號,得用一個(gè)沒注冊過公眾號的郵箱注冊。2、注冊過程中需要很多認(rèn)證,有很多認(rèn)證,比較繁瑣,如果暫時(shí)只是開發(fā)測試,不進(jìn)行提審、發(fā)布的話,只要完成...
閱讀 3745·2021-10-15 09:42
閱讀 2607·2021-09-03 10:50
閱讀 1654·2021-09-03 10:28
閱讀 1797·2019-08-30 15:54
閱讀 2520·2019-08-30 12:46
閱讀 415·2019-08-30 11:06
閱讀 2829·2019-08-30 10:54
閱讀 531·2019-08-29 12:59