2017-10-10 17 views
0

J'ai développé une application BLE sur Android appelée A pour fonctionner avec mon périphérique deviceA. Cela fonctionne très bien. Maintenant je suis coincé dans le cas suivant:
Je lance une autre application BLE appelée B et me connecte avec son périphérique appelé deviceB. Il est au premier plan. Mon application s'exécute en arrière-plan. Je commence à connecter deviceA à l'application A. Il s'exécute pour écrire un descripteur sur le deviceA et recevoir le fichier onWriteDescriptor avec le statut GATT_SUCCESS. Cependant, deviceA ne peut pas recevoir de données de descripteur. Dans le fichier journal, je vois que l'application B démarre BLE scan/stop BLE scan plusieurs fois.
Y at-il des experts peuvent m'expliquer pourquoi deviceA ne peut pas recevoir de données dans ce cas?
Merci beaucoup.Impossible d'envoyer un descripteur à un périphérique distant

+0

Vous voulez dire qu'il n'y a pas de paquets ATT Request et ATT Write Response correspondant à votre écriture de descripteur? – Emil

+0

Merci pour votre réponse, Emil. Je suis un débutant de BLE. Comment puis-je capturer ces paquets? Je comprends juste dans le contexte de la programmation Android. – teddy

+0

J'ai relu ma question et compris ce que vous voulez dire. Je suis désolé de vous avoir rendu confus. J'explique plus: Dans mon application, j'attends onCharacteristicChanged rappeler du GATT après le rappel onDescriptorWrite. Donc j'ai deviné que le côté de l'appareil ne peut pas recevoir la valeur du descripteur donc il n'a pas répondu. – teddy

Répondre

0

Vous devez également appeler setCharacteristicNotification qui indique à Android de transférer les notifications à votre application lorsque Android reçoit la notification.

+0

Dans ma question, j'ai dit que mon application fonctionne bien quand elle fonctionne seule (pas démarrer l'application B). SetCharacteristicNotification doit donc être appelé. – teddy