Eine kurze Diskussion über die Analyse von Bluetooth-Verbindungsfehlern und Lösungen bei der Entwicklung von Miniprogrammen

青灯夜游
Freigeben: 2021-09-07 11:34:54
nach vorne
6925 Leute haben es durchsucht

Eine kurze Diskussion über die Analyse von Bluetooth-Verbindungsfehlern und Lösungen bei der Entwicklung von Miniprogrammen

Wenn Sie Bluetooth auf Ihrem Telefon einschalten und versuchen, eine Bluetooth-Verbindung herzustellen, können Sie keine Verbindung herstellen und den Fehler 10003 melden. Zu diesem Zeitpunkt, unabhängig davon, ob Sie das Applet neu starten oder einschalten Wenn Bluetooth wieder ausgeschaltet ist, können Sie keine normale Verbindung zum Bluetooth-Gerät herstellen. 10003 ist ein Problem, das häufig bei WeChat-Bluetooth-Verbindungen auftritt. Das offizielle Dokument von WeChat beschreibt es einfach als „Verbindungsfehler“ mit dem Hinweis „Verbindungsfehler“. Es gibt jedoch tatsächlich viele Situationen, in denen ein Verbindungsfehler auftritt. Beispielsweise ist das Bluetooth-Gerät belegt oder die letzte Bluetooth-Verbindung wurde nicht getrennt, was dazu führt, dass beim Herstellen einer Verbindung zu Bluetooth keine Verbindung hergestellt werden kann eingeschaltet oder abnormal ist, was dazu führt, dass keine Verbindung hergestellt werden kann.

Da es dadurch verursacht wird, dass die Bluetooth-Verbindung nicht getrennt wird, trennen Sie die Bluetooth-Verbindung, wenn Sie die Bluetooth-Verbindung auf dem Telefon ausschalten. Beim Aufrufen der Trennfunktion in der Bluetooth-Statusüberwachung wird jedoch ein Fehler zurückgegeben (10001 (nicht verfügbar)). Der Bluetooth-Adapter ist derzeit nicht verfügbar.

Ich habe keine vorgefertigte Lösung gefunden, daher konnte ich nur den Code verfolgen und Protokolle zu den Schlüsselmethoden hinzufügen. Ich habe festgestellt, dass beim Ausschalten des Bluetooth des Mobiltelefons in der oberen Leiste das Die Bluetooth-Verbindung konnte im Applet nicht getrennt werden und es kam ein Fehler (10001 (nicht verfügbar) Der aktuelle Bluetooth-Adapter ist nicht verfügbar). Später habe ich versehentlich die Bindungsbeziehung des Bluetooth-Geräts gelöscht und die Bluetooth-Suchseite erneut aufgerufen. und stellte fest, dass ich danach erfolgreich eine Bluetooth-Verbindung herstellen konnte.

Eine kurze Diskussion über die Analyse von Bluetooth-Verbindungsfehlern und Lösungen bei der Entwicklung von Miniprogrammen

Bei der Lokalisierung des oben genannten Problems kann festgestellt werden, dass es darauf zurückzuführen sein sollte, dass die letzte Bluetooth-Verbindung nicht getrennt und dann erneut eine Verbindung hergestellt wurde ; also können wir nur eine erneute Verbindung nach Bluetooth suchen und dann erneut eine Verbindung herstellen Log, 10003 wird angezeigt. Rufen Sie dann das Suchmodul auf und suchen Sie. Nachdem Sie das angegebene Gerät erreicht haben, stellen Sie eine Bluetooth-Verbindung her und die Verbindung ist erfolgreich.

wx.createBLEConnection({
deviceId: deviceId,
success: function (res) { //连接成功
initnotifyCharacteristic(notifyCharacteristic);// 指定特征值,并进行数据交互
// 已连接
_bthConnectStaus = BTH_STATUS_CONNECTED;
},
fail: function (res) {// 连接蓝牙失败
_bthConnectStaus = BTH_STATUS_DISCONNECT;
// 回调上层蓝牙连接失败
callback(res.errCode, connectfailed)
}
Nach dem Login kopieren

Bestimmen Sie dann basierend auf dem res.errCode in fail, ob es 10003 ist.

if(code ==10003) { //  部分android手机特殊情况下需要重新搜索才能连接蓝牙,此时报错10003,进行蓝牙搜索(ps:原因可能是系统中将手机蓝牙关闭导致连接状态不能改为断开,导致下次无法连接同一个设备)
var timeId = setTimeout(function () {
stopSearchBluetooth();
callback(false, timout)
}, 5000); // 最多搜索5s
searchBluetooth(function (res) {
if (res.devices === undefined ||res.devices === null) {
return;
}
for (var i = 0; i < res.devices.length; i++) {
if (res.devices[i] &&res.devices[i].deviceId == deviceId) { // 搜索到该设备
console.log(searchDeviceAndReConnect:find device and re connect);
clearTimeout(timeId);
stopSearchBluetooth() // 停止搜索
callback(true, finddevice);// 找到设备,在回调函数中连接蓝牙
break;
}
}
}, function (res) {
clearTimeout(timeId);
stopSearchBluetooth() // 停止搜索
callback(false, searchBluetoothfail)
});
}
Nach dem Login kopieren

Der obige Code bietet einen einfachen Vorgang. Wenn bei der Verbindung ein 10003-Fehler auftritt, suchen Sie nach dem Bluetooth-Gerät und stellen Sie nach dem Finden eine erneute Verbindung zum Bluetooth her.

Natürlich ist 10003 nicht der einzige Fehler, der für dieses Problem gemeldet wird. 10003 wird auch gemeldet, wenn das Gerät Bluetooth nicht einschaltet. Und aufgrund der zusätzlichen Suchlogik erfolgt die Erinnerung, wenn das Gerät dies tut Wenn Bluetooth nicht eingeschaltet ist, wird es langsamer (Wenn das Bluetooth des Geräts nicht eingeschaltet ist, muss der Benutzer daran erinnert werden, das Bluetooth des Geräts einzuschalten), aber glücklicherweise hat dies derzeit keine gute Idee, das Problem zu lösen Ich werde es in Zukunft langsam studieren.

Angesichts der Tatsache, dass nur einige Mobiltelefone den Fehler 10003 haben, stellen sie einmal eine Verbindung zu Bluetooth her, bevor der Fehler 10003 gemeldet wird, um zu verhindern, dass andere Mobiltelefone die Verbindungsgeschwindigkeit zu Bluetooth verlangsamen, um Daten aufgrund der Suche nach Bluetooth zu sammeln. 10003 tritt in vielen Fällen auf. Ob die letzte Bluetooth-Verbindung beendet wurde, lässt sich aber grundsätzlich auch daran erkennen, dass die letzte Bluetooth-Verbindung nicht getrennt wurde.

Empfohlen: „Mini-Tutorial zur Programmentwicklung

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über die Analyse von Bluetooth-Verbindungsfehlern und Lösungen bei der Entwicklung von Miniprogrammen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage