使用藍芽之前,首先要先初始化藍芽(openbluetoothadapter)
,之後才能呼叫藍芽的各種api。初始化狀態分為兩種: 初始化成功:這時可以去搜尋藍芽裝置(startbluetoothdevicesdiscovery)
。 初始化失敗:這個時候需要提示使用者開啟藍芽,同時監聽藍芽的狀態(onbluetoothadapterstatechange)
,當藍芽開啟時,去搜尋裝置。
openbluetoothadapter() ,
fail: (res) => })}
}})
}複製**
開始搜尋附近的藍芽裝置(startbluetoothdevicesdiscovery)
,該操作比較耗費資源,建議在連線到藍芽裝置後,手動停止搜尋。
startbluetoothdevicesdiscovery()
this._discoverystarted = true
// 開始搜尋藍芽裝置,allowduplicateskey,會重複搜尋同一裝置
wx.startbluetoothdevicesdiscovery(,
})}複製**
獲取藍芽裝置有兩個api。
onbluetoothdevicefound()
const founddevices = this.data.devices
const idx = inarray(founddevices, 'deviceid', device.deviceid)
const data = {}
if (idx === -1) ]`] = device
} else ]`] = device
}this.setdata(data)
})})
}複製**
createbleconnection
:連線藍芽裝置,基本上到這,藍芽裝置就連線上了。為了避免乙個裝置多個連線例項,一般和closebleconnection
成對呼叫。在連線成功後,一般需要呼叫stopbluetoothdevicesdiscovery
,停止藍芽的搜尋。
createbleconnection(e) )
this.getbledeviceservices(deviceid)}})
// 在連線藍芽裝置後,停止搜尋藍芽。
this.stopbluetoothdevicesdiscovery()
}複製**
stopbluetoothdevicesdiscovery
: 在藍芽裝置連線成功後,需要停止搜尋藍芽裝置。
stopbluetoothdevicesdiscovery()
複製**
onbleconnectionstatechange
:監聽藍芽裝置的連線狀態,包括藍芽裝置的丟失,斷開,可以在該方法中進行處理這些連線後發生的異常情況。
wx.onbleconnectionstatechange(function (res) state has changed, connected: $`)
})複製**
在連線上藍芽裝置後,我們想要的還是跟藍芽進行通訊,或讀取藍芽裝置的資料,或寫資料到藍芽裝置。首先需要獲取藍芽裝置的服務資訊。
getbledeviceservices(deviceid) }}
})}複製**
getbledevicecharacteristics
:根據藍芽的服務資訊,獲取可以跟藍芽進行通訊的特徵值。一般使用notify或indicate為true、read或write為true
的特徵值。
notifyblecharacteristicvaluechange
: 啟用藍芽裝置的通知功能,該方法需要藍芽裝置的特徵值notify 或 indicate 為 true
。只有在在藍芽裝置啟用該功能,才能監聽到藍芽裝置的資料變化。
onblecharacteristicvaluechange
:監聽藍芽裝置的資料變化,當藍芽裝置的資料變化時,可以獲取相應變化後的資料。需要在啟用藍芽裝置的通知功能後才能使用。
writeblecharacteristicvalue
:寫資料到藍芽裝置,需要特徵值的write為true
。
// 獲取藍芽裝置的特徵值
getbledevicecharacteristics(deviceid, serviceid) )
}if (item.properties.write) )
this._deviceid = deviceid
this._serviceid = serviceid
this._characteristicid = item.uuid
// 寫資料到藍芽裝置
this.writeblecharacteristicvalue()
}if (item.properties.notify || item.properties.indicate) )}}
},fail(res)
})// 監聽藍芽裝置的資料變化
wx.onblecharacteristicvaluechange((characteristic) =>
if (idx === -1) ]`] =
} else ]`] =
}this.setdata(data)
})} // 寫資料到藍芽裝置
writeblecharacteristicvalue() )
}複製**
closebleconnection
:斷開與藍芽裝置的連線
closebleconnection() )
this.setdata()
}複製**
closebluetoothadapter
: 當藍芽使用完成後,關閉藍芽模組,釋放系統資源。
// 關閉藍芽模組
wx.closebluetoothadapter(
})複製**
微信小程式之藍芽列印
全域性變數,藍芽物件模板,但是在初始化藍芽之前需要刪除資料。globaldata if ios else 第一步 初始化藍芽裝置wx.openbluetoothadapter fail function res 第二步 搜尋附近藍芽裝置wx.startbluetoothdevicesdiscover...
小程式藍芽模組
開啟連線後為了避免出現衝突 一旦開啟連線則終止掃瞄附近藍芽裝置 終止讀取本機已配對裝置 7 連線成功後根據deiviceid獲取裝置的所有服務 this getservice deviceid getservice function deviceid 獲取藍芽裝置service值wx.getbled...
小程式連線藍芽
首先要藍芽初始化 wx.openbluetoothadapter 確定藍芽是否開啟,wx.startbluetoothdevicesdiscovery 搜尋藍芽裝置,這個搜尋需要大概 2秒左右可以攜帶,可以根據藍芽的特徵值進行搜尋 如藍芽裝置services server uuid 獲取裝置的dev...