Maison  >  Article  >  Applet WeChat  >  Une brève discussion sur l'analyse des erreurs de connexion Bluetooth et les solutions dans le développement de mini-programmes

Une brève discussion sur l'analyse des erreurs de connexion Bluetooth et les solutions dans le développement de mini-programmes

青灯夜游
青灯夜游avant
2020-04-25 09:32:376914parcourir

Une brève discussion sur l'analyse des erreurs de connexion Bluetooth et les solutions dans le développement de mini-programmes

Lorsque vous activez Bluetooth sur votre téléphone et essayez de vous connecter à Bluetooth, vous ne pourrez pas vous connecter et signaler l'erreur 10003. À ce stade, peu importe si vous redémarrez l'applet ou réactivez Bluetooth, vous ne pouvez pas vous connecter normalement au périphérique Bluetooth. 10003 est un problème souvent rencontré dans les connexions Bluetooth WeChat. Le document officiel fourni par WeChat le décrit simplement comme un « échec de connexion », avec une note d'« échec de connexion ». Cependant, il existe en réalité de nombreuses situations dans lesquelles un échec de connexion se produit. Par exemple, le périphérique Bluetooth est occupé ou la dernière connexion Bluetooth n'a pas été déconnectée, ce qui entraîne l'impossibilité de se connecter lors de la connexion à Bluetooth en fonction de l'ID du périphérique. allumé ou est anormal, ce qui entraîne l'impossibilité de se connecter.

Comme cela est dû à la non-déconnexion de la connexion Bluetooth, déconnectez le Bluetooth lorsque vous éteignez le Bluetooth du téléphone mobile ; cependant, l'appel de la fonction de déconnexion dans la surveillance de l'état Bluetooth renvoie une erreur (10001 (non disponible) L'adaptateur Bluetooth est actuellement indisponible).

Je n'ai pas trouvé de solution toute faite, j'ai donc pu seulement tracer le code et ajouter des journaux aux méthodes clés ; j'ai constaté qu'en désactivant le Bluetooth du téléphone mobile dans la barre supérieure, le La connexion Bluetooth n'a pas pu être déconnectée dans l'applet et une erreur (10001 (non disponible) L'adaptateur Bluetooth actuel n'est pas disponible) ; plus tard, par accident, j'ai effacé la relation de liaison du périphérique Bluetooth, je suis rentré dans la page de recherche Bluetooth, et j'ai découvert que je pouvais me connecter avec succès à Bluetooth après avoir fait cela.

Une brève discussion sur lanalyse des erreurs de connexion Bluetooth et les solutions dans le développement de mini-programmes

En localisant le problème ci-dessus, on peut constater qu'il devrait être dû au fait de ne pas avoir déconnecté la dernière connexion Bluetooth, puis de se reconnecter peut résoudre le problème. ; nous ne pouvons donc envisager que de nous reconnecter. Comment rechercher Bluetooth puis se reconnecter ? Après l'apparition de l'erreur 10003, recherchez à nouveau Bluetooth et établissez une connexion Bluetooth après avoir trouvé le code correspondant et testez à plusieurs reprises. log, 10003 apparaît. Entrez ensuite dans le module de recherche et recherchez. Après avoir atteint l'appareil désigné, effectuez une connexion Bluetooth, puis la connexion est réussie. Cette solution résout le problème.

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

Déterminez ensuite s'il s'agit de 10003 en fonction du res.errCode en cas d'échec.

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)
});
}

Le code ci-dessus fournit un processus simple. Lorsqu'une erreur 10003 se produit dans la connexion, recherchez le périphérique Bluetooth et après l'avoir trouvé, reconnectez-vous au Bluetooth.

Bien sûr, 10003 n'est pas la seule erreur signalée pour ce problème. Dans l'ensemble, 10003 est également signalé lorsque l'appareil n'active pas Bluetooth. Et en raison de l'ajout d'une logique de recherche, le rappel lorsque l'appareil l'active. ne pas activer le Bluetooth sera plus lent (si l'appareil Bluetooth n'est pas activé, il faut rappeler à l'utilisateur d'allumer l'appareil Bluetooth), mais heureusement, cela a peu d'impact. Il n'y a actuellement aucune bonne idée pour le résoudre, et nous. Je l'étudierai lentement à l'avenir.

Étant donné que seuls certains téléphones mobiles ont l'erreur 10003, ils se connecteront à Bluetooth une fois avant de signaler l'erreur 10003 pour éviter que d'autres téléphones mobiles ne ralentissent la vitesse de connexion à Bluetooth pour collecter des données en raison de la recherche de Bluetooth ; 10003 se produit dans de nombreux cas. Cependant, cela peut essentiellement être déterminé par la fin de la dernière connexion Bluetooth. La nouvelle recherche de Bluetooth puis la connexion sont également basées sur le fait que la dernière connexion Bluetooth n'a pas été déconnectée.

Recommandé : "Tutoriel de développement de mini-programmes"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer