안드로이드 블루투스 페어링 예제

Compartir

2/08/2019

Por

Categoría: Sin categoría

Comentarios: 0

accept() 호출은 차단 호출이므로 응용 프로그램이 다른 사용자 상호 작용에 계속 응답할 수 있도록 기본 활동 UI 스레드에서 실행되어서는 안 됩니다. 일반적으로 응용 프로그램에서 관리하는 새 스레드에서 BluetoothServerSocket 또는 BluetoothSocket과 관련된 모든 작업을 수행하는 것이 좋습니다. 수락() 과 같은 차단된 호출을 중단하려면 다른 스레드에서 BluetoothServerSocket 또는 BluetoothSocket에서 close()를 호출합니다. BluetoothServer소켓 또는 Bluetooth소켓의 모든 방법은 스레드에서 사용할 수 있습니다. 다음은 Android HDP 응용 프로그램을 만드는 데 관련된 기본 단계입니다. 호출isEnabled() 블루투스가 현재 활성화되어 있는지 확인합니다. 이 메서드가 false를 반환하면 Bluetooth가 비활성화됩니다. Bluetooth를 사용하도록 요청하려면 ACTION_REQUEST_ENABLE 의도 작업을 전달하는 startActivityForResult()를 호출합니다. 이 호출은 (응용 프로그램을 중지하지 않고) 시스템 설정을 통해 블루투스를 사용하도록 요청을 발행합니다.

예: Android 4.0(API 수준 14)은 HDP(블루투스 건강 장치 프로필)에 대한 지원을 소개합니다. 이를 통해 블루투스를 사용하여 심박수 모니터, 혈액 측정기, 온도계 및 저울과 같은 Bluetooth를 지원하는 건강 장치와 통신하는 응용 프로그램을 만들 수 있습니다. 블루투스 건강 API는 클래스 블루투스 건강, 블루투스 건강 콜백, 및 블루투스 헬스 앱 구성을 포함, 키 클래스 및 인터페이스에 설명되어 있는. Bluetooth 지원 장치가 서로 간에 데이터를 전송하려면 먼저 페어링 프로세스를 사용하여 통신 채널을 형성해야 합니다. 검색 가능한 장치인 하나의 장치를 통해 들어오는 연결 요청에 사용할 수 있습니다. 다른 장치는 서비스 검색 프로세스를 사용하여 검색 가능한 장치를 찾습니다. 검색 가능한 장치가 페어링 요청을 수락하면 두 장치는 보안 키를 교환하는 본딩 프로세스를 완료합니다. 장치는 나중에 사용할 수 위해 이러한 키를 캐시합니다.

페어링 및 본딩 프로세스가 완료되면 두 장치는 정보를 교환합니다. 세션이 완료되면 페어링 요청을 시작한 장치는 검색 가능한 장치에 연결한 채널을 해제합니다. 그러나 두 장치는 서로 의 범위에 있고 두 장치가 결합을 제거하지 않는 한 향후 세션 중에 자동으로 다시 연결할 수 있습니다. getDefaultAdapter() 메서드가 NULL을 반환하는 경우 장치는 블루투스를 지원하지 않으며 모든 블루투스 기능을 비활성화 할 수 있습니다. 이 메서드 호출은 서버 소켓과 모든 리소스를 해제하지만 accept()에 의해 반환된 연결된 BluetoothSocket을 닫지 않습니다. TCP/IP와 달리 RFCOMM은 한 번에 채널당 하나의 연결된 클라이언트만 허용하므로 대부분의 경우 연결된 소켓을 수락한 직후 BluetoothServerSocket에서 close()를 호출하는 것이 합리적입니다. 블루투스를 통해 연결하려면 먼저 기기의 블루투스를 켭니다. 새 Bluetooth 액세서리를 사용할 때기기와 페어링합니다. 페어링 후 장치는 자동으로 서로 연결할 수 있습니다. 블루투스가 지원되지 않는 경우, 당신은 우아하게 모든 블루투스 기능을 비활성화해야합니다. Bluetooth가 지원되지만 비활성화된 경우 사용자가 응용 프로그램을 떠나지 않고 Bluetooth를 사용하도록 요청할 수 있습니다.

이 설정은 BluetoothAdapter를 사용하여 두 단계로 수행됩니다.