다음은 Bluetooth를 통해 연결된 두 장치 간에 데이터를 전송하는 방법의 예입니다. 이 브로드캐스트에는 각각 새 블루투스 상태와 이전 Bluetooth 상태를 포함하는 EXTRA_STATE 및 EXTRA_PREVIOUS_STATE 추가 필드가 포함되어 있습니다. 이러한 추가 필드에 대한 가능한 값은 STATE_TURNING_ON, STATE_TURNING_OFF 및 STATE_OFF입니다. 앱에서 Bluetooth 상태의 런타임 변경 사항을 검색해야 하는 경우 이 브로드캐스트를 수신 대기하는 것이 유용할 수 있습니다. Android 플랫폼에는 Bluetooth 네트워크 스택에 대한 지원이 포함되어 있어 장치가 다른 Bluetooth 장치와 무선으로 데이터를 교환할 수 있습니다. 응용 프로그램 프레임 워크는 안드로이드 블루투스 API를 통해 블루투스 기능에 대한 액세스를 제공합니다. 이러한 API를 사용하면 애플리케이션이 다른 Bluetooth 장치에 무선으로 연결되므로 지점 간 및 멀티포인트 무선 기능을 사용할 수 있습니다. 참고: Android 기반 장치는 기본적으로 검색할 수 없습니다. 사용자는 시스템 설정을 통해 제한된 시간 동안 장치를 검색할 수 있도록 만들거나 응용 프로그램에서 응용 프로그램을 떠나지 않고 검색 가능성을 사용하도록 요청할 수 있습니다. 자세한 내용은 이 페이지의 검색 가능성 사용 섹션을 참조하세요.

기기에 블루투스를 통해 연결할 때 다른 기기에서 볼 수 있는 블루투스 이름이 있습니다. 기기의 블루투스 이름을 변경할 수 있습니다. 블루투스는 다른 장치와 무선으로 데이터를 교환하는 방법입니다. Android는 다음과 같은 여러 작업을 수행 하기 위해 블루투스 API를 제공 합니다.: 경우에 대 한, 우리가 사용 가능한 블루투스 장치를 발견 하거나 우리의 애플 리 케이 션에서 블루투스 설정을 조작 하려는 경우, 우리는 BLUETOOTH_ADMIN 권한을 정의 해야. 여러 장치를 성공적으로 연결한 후에는 각 장치에 연결된 BluetoothSocket이 있습니다. 장치 간에 정보를 공유할 수 있기 때문에 재미가 시작되는 곳입니다. BluetoothSocket을 사용하여 데이터를 전송하는 일반적인 절차는 다음과 같습니다: Bluetooth가 지원되지만 비활성화된 경우 isEnabled() 메서드가 false를 반환하고 사용자가 응용 프로그램을 사용하지 않고 Bluetooth를 사용하도록 요청할 수 있습니다. 시작활동ForResult() 메서드와 ACTION_REQUEST_ENABLE 의도 작업 매개 변수입니다. 이 메서드 호출은 서버 소켓과 모든 리소스를 해제하지만 accept()에 의해 반환된 연결된 BluetoothSocket을 닫지 않습니다. TCP/IP와 달리 RFCOMM은 한 번에 채널당 하나의 연결된 클라이언트만 허용하므로 대부분의 경우 연결된 소켓을 수락한 직후 BluetoothServerSocket에서 close()를 호출하는 것이 합리적입니다. 주의: 장치 검색을 수행해도 Bluetooth 어댑터의 리소스가 많이 소모됩니다. 연결할 장치를 찾은 후에는 연결을 시도하기 전에 cancelDiscovery()를 사용하여 검색을 중지해야 합니다.

또한 검색 프로세스가 기존 연결에 사용할 수 있는 대역폭을 크게 줄이므로 장치에 연결된 동안 검색을 수행하면 안 됩니다. 우리가 구축, 컴파일 및 우리의 프로젝트를 실행할 때, 주요 BluetoothChat 다음과 같이 보일 것 이다: 두 블루투스 장치 간에 데이터를 전송 하려면, 먼저 그들은 페어링 프로세스를 사용 하 여 통신 채널을 설정 해야 합니다. 페어링할 장치는 검색 가능해야 하며 들어오는 연결 요청을 수락해야 합니다. 일반적으로 장치는 서비스 검색 프로세스를 사용하여 검색 가능한 장치를 찾습니다.