2017-10-10 5 views
0

안드로이드에서 A라는 장치 장치로 작업하기 위해 BLE 응용 프로그램을 개발했습니다. 아주 잘 작동하고 있습니다. 이제 다음과 같은 경우에 붙어 있습니다 :
B라는 다른 BLE 응용 프로그램을 시작하고 deviceB라는 장치와 연결합니다. 그것은 전경에 있습니다. 내 응용 프로그램이 백그라운드에서 실행 중입니다. 장치 A를 응용 프로그램 A에 연결하기 시작합니다. 장치 A에 설명자를 쓰고 상태가 GATT_SUCCESS 인 onWriteDescriptor를 수신하기 위해 실행됩니다. 그러나 deviceA는 설명자 데이터를 수신 할 수 없습니다. 로그 파일에서 응용 프로그램 B가 BLE 검사를 시작하거나 BLE 검사를 여러 번 중단합니다.
이 경우 왜 deviceA가 데이터를 수신 할 수 없는지에 대한 전문가가 있습니까?
대단히 감사합니다.원격 장치에 설명자를 보낼 수 없습니다.

+0

공중에서 ATT 쓰기 요청이없고 ATT 쓰기 응답 패킷이 귀하의 설명자 쓰기에 해당한다는 것을 의미합니까? – Emil

+0

Emil에게 답장을 보내 주셔서 감사합니다. 나는 BLE의 초보자입니다. 어떻게 이러한 패킷을 캡처 할 수 있습니까? 난 그냥 안드로이드 프로그래밍의 맥락에서 이해합니다. – teddy

+0

다시 내 질문을 읽고 무슨 뜻인지 이해합니다. 네가 혼란스럽게해서 미안해. 내가 더 설명 : 내 응용 프로그램에서 onCharacteristicChanged 호출을 기다리고 있습니다 GATT에서 onDescriptorWrite 콜백 후. 그래서 디바이스 측에서 디스크립터 값을받을 수 없으므로 응답을하지 못했을 것입니다. – teddy

답변

0

Android가 알림을받을 때 알림이 앱에 전달되도록 Android에 알려주는 setCharacteristicNotification을 호출해야합니다.

+0

제 질문에, 제 응용 프로그램이 단독 실행될 때 (응용 프로그램 B가 시작되지 않음) 잘 작동한다고 말했습니다. 따라서 setCharacteristicNotification을 호출해야합니다. – teddy