본문 바로가기
안드로이드

[Android] BLE WriteCharacteristic

by 코딩히어로 2022. 1. 13.
728x90

제목


안드로이드 Bluetooth Project에서 기본적으로 샘플 코드를 이용하면 ReadCharacteristic

함수를 지원하기 때문에 Bluetooth Device로부터 Data를 읽는 것은 손쉽게 가능합니다.

 

그런데 이 샘플코드에서는 Bluetooth에 Data를 전송하기 위한 함수가 구현되어 있지 않기

때문에 개발자는 직접적으로 함수를 구현하여 통신 로직을 만들어야 합니다.

 

그럼 ReadCharacteristic과 반대되는 쓰기속성의 WriteCharacteristic을 구현해보겠습니다.

코드는 생각보다 간단한데 먼저 BluetoothService가 선언되어 생성되어야 하며

그 BluetoothService 클래스 내부에 구현이 되어야 합니다.

소스코드는 다음과 같습니다

 

public boolean writeCharacteristic(BluetoothGattCharacteristic characteristic, byte[] data){
	if(mBluetoothAdapter == null || mBluetoothGatt == null){
		Log.d(TAG, ""BluetoothAdapter not initialized);
		return false;
	}
	characteristic.setValue(data);
	return mBluetoothGatt.writeCharacteristic(characteristic);
}

 

이렇게 BluetoothService 클래스 내에 작성을 완료한 뒤에 BluetoothService 객체를 사용

하는 구문에서 writeCharacteristic 함수를 호출만 해주면 됩니다.

 

만약에 MainClass라는 Activity단에서 Bluetooth로 데이터를 전송한다고 하면

 

byte data[] = hexStringToByteArray("100101");
mBluetoothService.writeCharacteristic(characteristic, data);

 

위와 같이 data를 만들어서 writeCharacteristic 함수를 호출합니다.

728x90
반응형

댓글