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

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

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

​
저번 시간에 자기 자신을 알리는 것에 이어서 연결 과정을 다뤄보겠습니다.
​
BluetoothGattServer 변수를 만듭니다.





그리고 openGattServer()로 BluetoothGattServer를 만듭니다.

openGattServer()에는 Context와 BluetoothGattServerCallback이 필요합니다.

​

우선 bluetoothGattServerCallback부터 만들어보죠.

gattServerCallback은 Service 추가 상태, 연결 상태, Notification 보내기, Characteristic 읽고 쓰기 요청 응답, Descriptor 읽고 쓰기 요청 응답 등을 처리하는 역할의 함수입니다.

​

​

onConnectionStateChange를 override 합니다. 이 함수는 BLE 연결 상태가 변화할 때마다 실행되는 함수입니다.






이제 Callback 함수를 다 만들었으니 openGattServer로 GATT server를 만들어줍니다.





그리고 이전 시간에 만든 Service를 추가해 줍니다.





​

우리는 두 개의 Service를 사용할 거기 때문에 하나의 서비스가 완전히 등록된 다음에 다른 서비스를 등록해야 하는 절차가 필요합니다.

지금은 servicePrimary만 등록한 코드이고, 이제 두 번째 serviceSecondary를 추가해 보는 것을 해보겠습니다.

​

​

Callback 함수의 onServiceAdded를 override 합니다.

status가 Service 추가 상태를 나타내는 변수입니다.

service 변수는 status가 가리키는 service를 말합니다.

status가 BluetoothGatt.GATT_SUCCESS 추가 성공이고, service가 servicePrimary 이면 addService로 serviceSecondary를 추가하라는 코드입니다.






그리고 onConnectionStateChange로 가서 removeService로 연결이 종료되면 service를 제거해 줍니다.

newState가 변화된 상태를 나타내는 변수입니다.

BluetoothProfile.STATE_CONNECTED와 BluetoothProfile.STATE_DISCONNECTED로 연결과 해제 상태를 분간할 수 있습니다.






연결하는 것을 Log로 보겠습니다.







두 개의 Service가 추가되었고, 연결 해제 시 remove 되는 걸 확인했습니다.

​

​

여기까지 연결을 위한 코드를 만들어보았습니다.

​

끝.


카테고리: Android


댓글

이 블로그의 인기 게시물

일본어 문장부호

Python urllib.parse.quote()

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

음악 총보(Score), 파트보(Part)

KiCad 시작하기 3 (새로운 소자 추가하기)

Kivy 시작하기 12 (Pyinstaller로 exe 파일 만들기)

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

KiCad 시작하기 6 (FreeRoute 사용하기 1)

Python urllib.request.urlopen()

RFC 9421