안드로이드 블루투스 서비스 예제

Android 플랫폼에는 Bluetooth 네트워크 스택에 대한 지원이 포함되어 있어 장치가 다른 Bluetooth 장치와 무선으로 데이터를 교환할 수 있습니다. 응용 프로그램 프레임 워크는 안드로이드 블루투스 API를 통해 블루투스 기능에 대한 액세스를 제공합니다. 이러한 API를 사용하면 애플리케이션이 다른 Bluetooth 장치에 무선으로 연결되므로 지점 간 및 멀티포인트 무선 기능을 사용할 수 있습니다. 원격 장치로 처음으로 연결되면 페어링 요청이 사용자에게 자동으로 표시됩니다. 장치가 페어링되면 장치 이름, 클래스 및 MAC 주소와 같은 해당 장치에 대한 기본 정보가 저장되고 Bluetooth API를 사용하여 읽을 수 있습니다. 원격 장치에 대해 알려진 MAC 주소를 사용하여 장치가 여전히 범위 내에 있다고 가정하여 검색을 수행하지 않고 언제든지 연결을 시작할 수 있습니다. 블루투스가 지원되지 않는 경우, 당신은 우아하게 모든 블루투스 기능을 비활성화해야합니다. Bluetooth가 지원되지만 비활성화된 경우 사용자가 응용 프로그램을 떠나지 않고 Bluetooth를 사용하도록 요청할 수 있습니다. 이 설정은 BluetoothAdapter를 사용하여 두 단계로 수행됩니다: 참고: Bluetooth에 설명된 대로 Bluetooth LE 장치를 검색하거나 클래식 블루투스 장치를 검색할 수만 있습니다. Bluetooth LE와 클래식 장치를 동시에 스캔할 수 없습니다.

일반 헤드셋 및 A2DP 프로필 장치와 마찬가지로 BluetoothProfile.ServiceListener 및 상태 프로필 유형이 있는 getProfileProxy()를 호출하여 프로필 프록시 개체와의 연결을 설정해야 합니다. 일반적으로 들어오는 연결에 대한 수신 청취가 완료되는 즉시 BluetoothServerSocket을 닫아야 합니다. 이 예제에서는 BluetoothSocket이 구입되는 즉시 close()가 호출됩니다. 스레드에서 해당 서버 소켓에서 수신 대기를 중지해야 하는 경우 개인 BluetoothSocket을 닫을 수 있는 공용 메서드를 제공할 수도 있습니다. 블루투스 어댑터 방법을 사용하여 getBondedDevice(), 우리는 블루투스 페어링 장치 목록을 얻을 수 있습니다. 장치 검색은 Bluetooth 지원 장치의 로컬 영역을 검색하고 각 장치에 대한 몇 가지 정보를 요청하는 검색 절차입니다. 이 프로세스를 검색, 문의 또는 검색이라고도 합니다. 그러나 근처의 Bluetooth 장치는 현재 검색 가능으로 정보 요청을 수락하는 경우에만 검색 요청에 응답합니다. 장치를 검색할 수 있는 경우 장치 이름, 해당 클래스 및 고유한 MAC 주소와 같은 일부 정보를 공유하여 검색 요청에 응답합니다. 이 정보를 사용하여 검색 프로세스를 수행하는 장치는 검색된 장치에 대한 연결을 시작하도록 선택할 수 있습니다.