小程式之藍芽的使用

2021-09-24 07:58:02 字數 3207 閱讀 7380

使用藍芽之前,首先要先初始化藍芽(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...