마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Ble Advertise UUID&&Data 보내는방법이 궁금합니다. [closed]

0 추천
안녕하세요

디바이스 2개에 대해 BLE 통신을 하려합니다.

연결이 되기 전에 Advertise하는 쪽에서 어떠한 상태값을 Scan 하는 디바이스에 보내고 싶습니다.

그래서 AvertiseData Class의 addServiceUuid 메소드를 이용하여 UUID 까지 전달하는데 성공하였는데요.

 후에 addServiceData()옵션을 이용하여 Data를 Setting 한뒤에 Advertise를 하려고 하면 Data가 초과 되었다는 ErrorCode:1->ADVERTISE_FAILED_DATA_TOO_LARGE이 Call되면서 Advertise가되지 않습니다.

그래서 addServiceUuid속성을 제거 한뒤에 addServiceData()만 Setting한뒤에 Advertise한뒤에 Scan 하면 Scan이되지만 Data를 제대로 받아오지 못합니다.

혹AvertiseData의 addServiceUuid와addServiceData의 속성을 같이 보낼수있는 방법이 없나요 ?ㅜ

부탁드립니다

그리고 이질문은 개인적으로 궁금한것입니다 ㅠ ble 통신은 Client(Master(Scan))에서 데이터를 요청 후 ->Server(Slave(Advertise))에서 보내주는 방식으로 구현되어 있는데 보통 Device와 BLE Mouse 간의 통신을 할때도 Device에서 먼저 CHARACERISTIC요청 후 기다린뒤에 Ble Mouse에서 Event가 발생시에 Device에다 값을 보내주는 식으로 되어있는것인가요 ?

저의 짧은 생각엔 BLE Mouse에서  그냥 Event발생시에만 Device에 Callback을 날려줘 Event를 처리하는 방식이 더 좋을것같은데 왜 Device에서 먼저 Event(Request)를 요청하고 후에 BleMouse이벤트 발생시에 처리(Response)가되는 이유가 궁금합니다.ㅠ
질문을 종료한 이유: 해결 Service에대한 UUID에 Data를 보내려면 UUID 프로토콜에 명시된 UUID 로만 보내지는 것같습니다. 이유는 모르겠습니다.
CJ여비 (5,680 포인트) 님이 2019년 3월 27일 질문
CJ여비님이 2019년 3월 27일 closed
...