Android Make a Bluetooth Low Energy(BLE) GATT server 4

사용 언어: Kotlin 1.6.10
사용 버전: Android Studio 2020.3.1 Patch 4

안드로이드 Make a Bluetooth Low Energy(BLE) GATT server 4를 알아보겠습니다.


저번 시간에는 characteristic에 읽기 쓰기 응답을 해보았습니다.
이번에는 Notification을 보내는 방법을 알아보겠습니다.


notification 설정은 보통 descriptor 0x2902에서 처리합니다.
descriptor 읽기 쓰기 응답을 준비합니다.
Client에서 0x2902를 읽거나 쓰기 할 때 요청을 해줘야 하니까요.


BluetoothGattServerCallback()에서 onDescriptorReadRequest와 onDescriptorWriteRequest를 override 합니다.






notification을 전송할 장비들을 모아놓은 변수를 하나 만듭니다.







만약 notify에 있는 장비면 BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE를 반환하고, 아니면 BluetoothGattDescriptor.DISABLE_NOTIFICATION_VALUE를 반환합니다.






onDescriptorWriteRequest에 이제 nofityDevice 등록을 위한 코드를 만듭니다.

descriptor에 BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE 값이면 NotifyDevices에 장비를 더합니다. 아니면 삭제합니다.








이제 Notification을 보내보겠습니다.

이전 시간에 만든 onCharacteristicWriteRequest에 갑니다.

아래처럼 있는데 notification을 보내는 행위를 해봅니다.







코드를 추가해 줍니다.

notifyCharacteristicChagned() 함수를 사용합니다.

괄호 안에는 전송할 device, characteristic 정보, 사용자 확인을 위한 confirm 참, 거짓이 들어갑니다.






notification을 보낼 때, Callback이 필요하다면, onNotificationSent를 override 해주면 됩니다.




끝.


카테고리: Android

댓글

이 블로그의 인기 게시물

Python OpenCV 빈 화면 만들기

Python urllib.parse.quote()

Python bytes.fromhex()

Android AVD Ram size change

Forensics .pyc 파일 .py로 복구하기

Android Minimum touch target size

KiCad 시작하기 7 (FreeRoute 사용하기 2)

Android Notification with Full Screen

C++ OpenCV 모폴로지 침식, 팽창

KiCad 시작하기 2 (PCB 만들기)