android ble 통신 예제

Android 6.0 이상을 사용하는 경우 GPS를 켜야 합니다. 세부 정보: http://stackoverflow.com/questions/33013818/bluetoothlescanner-startscan-with-android-6-0-not-not-discover-device 클래식 블루투스와 는 달리, 블루투스 저에너지(BLE)는 상당히 낮은 전력을 제공하도록 설계되었습니다. 소비. 이를 통해 Android 앱은 근접 센서, 심박수 모니터 및 피트니스 장치와 같이 더 엄격한 전력 요구 사항이 있는 BLE 장치와 통신할 수 있습니다. 아주 좋은 exmaple. 나는 연결할 수 있지만 내 Genuino 101에 데이터를 wirte하지 못했습니다. 나는 메시지를 다시: 10-27 14:30:48.070 12369-12369/com.example.android.bluetoothlegatt W/BluetoothLeService: 사용자 지정 BLE 서비스는 내 로그에서 찾을 수 없습니다. 누군가가 이것으로 나를 도울 수 있습니까? 서비스 — 서비스는 특성의 모음입니다. 예를 들어 “심박수 측정”과 같은 특성을 포함하는 “심박수 모니터”라는 서비스를 사용할 수 있습니다.

응용 프로그램에서 Bluetooth 기능을 사용하려면 Bluetooth 권한 Bluetooth를 선언해야 합니다. 연결 요청, 연결 수락 및 데이터 전송과 같은 Bluetooth 통신을 수행하려면 이 권한이 필요합니다. 모든 블루투스 활동에는 Bluetooth어댑터가 필요합니다. BluetoothAdapter는 장치의 자체 블루투스 어댑터(블루투스 라디오)를 나타냅니다. 전체 시스템에 하나의 Bluetooth 어댑터가 있으며 응용 프로그램이 이 개체를 사용하여 상호 작용할 수 있습니다. 아래 코드 조각은 어댑터를 얻는 방법을 보여줍니다. 이 방법은 getSystemService()를 사용하여 BluetoothManager의 인스턴스를 반환한 다음 어댑터를 얻는 데 사용됩니다. 안드로이드 4.3 (API 수준 18) 블루투스 관리자를 소개 : 여기에 안드로이드 장치가 BLE 장치와 상호 작용할 때 적용되는 역할과 책임입니다 : 우리는 측정을 표시하는 심박수 센서에 우리의 안드로이드 응용 프로그램을 연결합니다.

여기는 우리가 사용 하려고 하는 서비스와 특성에 대 한 요약 된 블루투스 사양입니다. 그러나 많은 클래식 블루투스 프로필과 달리 GATT 장치에 대한 Android API는 현재 프로필 수준 추상화를 제공하지 않습니다. Android의 Bluetooth LE 장치와 효과적으로 통신하려면 대상 원격 장치에서 기대하는 서비스와 특성을 미리 결정해야 합니다. 그런 다음 API를 사용하면 해당 특정 서비스를 검색한 다음 관심 있는 특성을 직접 읽고 쓸 수 있습니다. 그것은 우리의 애플 리케이션과 블루투스 LE의 통신을 설정하는 동안 조금 혼란 보인다 – 그것은 무엇을 추측! 그러나 우리는 앞으로 나아갈 것이고 가장 간단한 방식으로 작동하기 위해 중요한 것을 이해할 것입니다. 안드로이드 응용 프로그램을 사용하여 사용자 정의 BLE와 통신하는 방법 이 단계에서, 안드로이드는 주변 장치, 또는 GATT 서버, 역할에서 작동하도록 하는 응용 프로그램을 만드는 것을 지원하지 않는다는 것을 주의하는 것이 중요하다. 다른 주변 장치를 검색하고 연결할 수만 있습니다. BluetoothLeService는 BLE Android 기능 중 일부를 능가하는 기본 클래스일 뿐입니다. 실제로 UI에서 작업을 수행하려면 DeviceControlActivity 파일을 일부 수정해야 합니다.

makeGattUpdateIntentFilter()를 확인 한 직후 클래스의 끝에 다음 두 함수를 추가합니다. 이러한 함수는 이전부터 클래스에 추가된 두 함수를 호출합니다. onClickWrite() 함수는 0xAA 값을 특성에 기록하지만 원하는 값으로 수정할 수 있습니다. 읽기 함수는 운영 체제에 대한 읽기 요청을 트리거합니다.