사용 언어 : Kotlin 1.6.10 사용 버전 : Android Studio 2020.3.1 Patch 4 Android Make a Bluetooth Low Energy (BLE) GATT Server 3을 살펴보겠습니다. 저번 시간에 연결해봤는데요. 이번에는 Characteristic의 읽고 쓰기 응답을 해보겠습니다.GATT Client에서 읽기 요청을 전송하면 적절한 응답이 필요합니다.읽기 응답을 해보겠습니다.前回作ったBluetooth Gatt Server Callback()にon Characteristic Read Request()をoverrideします。
device는 클라이언트의 device 정보, requestId는 요청 순서, offset은 데이터 읽기 시작 위치, characteristic은 읽기를 요청한 characteristic 정보가 포함되어 있습니다.send Response에서 클라이언트에게 요청에 대한 응답을 보냅니다. 이 응답 프로세스가 없을 경우 Client는 응답 대기 상태에서 정지하거나 BLE 연결이 끊어집니다. characteristic의 value를 확인하고 null이 아니면 Bluetooth Gatt.GATT_SUCCESS를 보내고 가격을 보내겠습니다.만약 characteristic이 null이라면 Bluetooth Gatt.GATT_FAILURE를 반환합니다.
이번에는 쓰기 요청에 대한 답변을 해볼까요?onCharacteristic Write Request()를 override 합니 다. 여기도 Read와 같습니다.device는 Client 디바이스의 정보, requestId는 순서, characteristic은 어느 characteristic에 Write 요청을 했는지 preparedWrite는 알 수 없습니다, responseNeed는 true이면 response가 필요하고 false이면 no response입니다. offset은 읽기 위치, value는 쓰기 값입니다.
여기에 값에 따라 characteristic 값을 변경하는 코드를 넣어보겠습니다.value를 읽고 특정 값이면 read Characteristic 값을 set Value로 바꾸는 코드입니다.여기서는 파란색을 넣으면 읽기 Characteristic에 별이 들어가고, 따뜻함을 넣으면 다른 읽기 Characteristic에 사람이 들어갑니다.그리고 응답이 필요한 경우 send Response를 해줍니다. 보통 Write는 No Response를 많이 해주지 않아도 됩니다.
다음 시간에는 Notification 방법을 알아보겠습니다.끝.#Android