문제

현재 Android BLE를 개발 중인데 Android BLE 스택에 많은 문제가 발생합니다.

내 개발 도구는 Android 4.3이 설치된 Samsung Galaxy J입니다.

BLE에서 특성을 읽고 특성을 쓰는 방법을 알고 싶습니다. (예: 수신한 데이터를 확인한 다음 BLE를 사용하여 다른 데이터를 보내는 것과 같습니다.)

Android BLE 콜백이 어떻게 작동하는지 이해하는 데 심각한 문제가 있습니다. 나는이 5 가지 기능을 이해하지 못한다 ... 그리고 매뉴얼이 명확하지 않은데, 좋은 영혼이 간단한 형태로 설명 할 수 있습니까???

onCharacteristicWrite
onCharacteristicRead
onCharacteristicChanged
onDescriptorRead
onDescriptorWrite

현재 상황은 onCharacteristicChanged() 콜백에서 데이터를 읽은 다음 수신된 데이터를 확인하고 다음을 사용하여 데이터를 보내려고 합니다.

characteristics.setValue(data)
gatt.writeCharacteristic(characteristics)

하지만 Android BLE 스택은 onCharacteristicsWrite()를 호출하지 않으며 실제로 Android는 거기에서 멈춥니다.

Android BLE에 대해 Google에 검색해 보면 정보가 많지 않고 BLE 스택이 얼마나 불안정한지에 대한 불만만 많습니다.

도움이 되었습니까?

해결책

안드로이드 BLE의 콜백 각각은 기능이 있습니다.

onDescriptRead 및 OnDescriptorWrite

BLE 장치의 구성 설정을 작성 / 읽는 데 사용되며 일부 제조사는 BLE 장치에 연결할 수 있으려면 BLE 장치에 연결할 수 있기 전에 읽기 전에 확인해야 할 수도 있습니다.

onchareacteristicwrite

이것은 일반적으로 BLE 장치의 데이터 모드에서 데이터를 BLE 장치로 전송하는 데 사용됩니다. 이 콜백은

를 입력 할 때 호출됩니다.
gatt.writeCharacteristic(characteristics);
.

oncharacteristicread

이것은 BLE 장치에서 데이터를 읽는 데 사용됩니다. 콜백은이 코드를 작성할 때 호출됩니다.

gatt.readCharacteristic(characteristics);
.

onacharacteristicChanged

이 콜백은 WritechaRacteristic (특성)을 사용하여 데이터를 보내려고 할 때 호출되고 BLE 장치는 일부 값으로 응답합니다.

일반적으로 BLE 장치는 간단하게 만들기 위해 특성이 거의 없으며 몇 가지 특성을 지명

  • 쓰기 - 쓰기 특성
  • 읽기 - 읽기 특성

데이터를 보낼 때 쓰기 특성을 사용하고 BLE 장치가 Android 앱이 읽기 특성 주의 사항 안드로이드 BLE 스택은 한 번에 하나씩 특성을 작성할 수 있습니다 !!

예 : 동시에 쓰기 특성을 두 번 호출하려고하면 동시에

gatt.writeCharacteristic(characteristics);
gatt.writeCharacteristic(characteristics);
.

안드로이드 BLE 스택은 2 번째 쓰기 특성을 발행하지 않습니다!

다른 팁

전에 setValue:characteristics.setValue(data) 당신은 사용해야합니다 gatt.setCharacteristicNotification(Char,true) 에게 setNotification.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top