bluetooth chat 예제

UUID는 정보를 고유하게 식별하는 데 사용되는 문자열 ID에 대해 표준화된 128비트 형식입니다. UUID의 요점은 임의의 ID를 선택할 수 있을 만큼 크고 다른 ID와 충돌하지 않는다는 것입니다. 이 경우 응용 프로그램의 Bluetooth 서비스를 고유하게 식별하는 데 사용됩니다. 응용 프로그램과 함께 사용할 UUID를 얻으려면 웹에서 여러 임의의 UUID 생성기 중 하나를 사용한 다음 fromString(문자열)을 사용하여 UUID를 초기화할 수 있습니다. 우리는 src/com.javacodegeeks.androidBluetoothExample/ 내부에 새로운 자바 클래스를 추가하여 src/com.javacodegeeks.androidBluetoothExample/BluetoothChat.java 파일을 가지고 아래 코드를 붙여 넣습니다. 블루투스가 지원되지 않는 경우, 당신은 우아하게 모든 블루투스 기능을 비활성화해야합니다. Bluetooth가 지원되지만 비활성화된 경우 사용자가 응용 프로그램을 떠나지 않고 Bluetooth를 사용하도록 요청할 수 있습니다. 이 설정은 BluetoothAdapter를 사용하여 두 단계로 수행됩니다: Bluetooth 장치와의 연결을 시작하려면 연결된 BluetoothDevice 개체에서 필요한 것은 getAddress()를 호출하여 검색하는 MAC 주소뿐입니다. 장치 연결 에 대한 섹션에서 연결 만들기에 대해 자세히 알아볼 수 있습니다. 안녕! 아주 좋은 코드,하지만 난 질문이 있습니다. 예를 들어 4 + 휴대 전화 또는 안드로이드 장치를 연결할 수 있습니까? 같은 방에있는 5ppl과 채팅을 할 수 있습니까? 채팅 서버는 다른 사람이 있다는 것을 알고 있는 경우에만 유용합니다.

다른 장치가 검색할 수 있도록 하려면 서비스를 설명하는 레코드를 시스템 SDP(서비스 검색 프로토콜) 데이터베이스에 게시해야 합니다. QBluetoothServiceInfo 클래스는 서비스 레코드를 캡슐화합니다. 원격 채팅 서비스에서 연결을 끊기 위해 QBluetoothSocket 인스턴스가 삭제됩니다. BluetoothAdapter를 사용하면 장치 검색을 통해 또는 페어링된 장치 목록을 쿼리하여 원격 Bluetooth 장치를 찾을 수 있습니다. 일반 헤드셋 및 A2DP 프로필 장치와 마찬가지로 BluetoothProfile.ServiceListener 및 상태 프로필 유형이 있는 getProfileProxy()를 호출하여 프로필 프록시 개체와의 연결을 설정해야 합니다. 이 예제의 주요 창은 채팅 클래스에서 구현된 채팅 대화 상자입니다. 이 클래스는 단일 ChatServer와 0 개 이상의 ChatClients 간의 채팅 세션을 표시합니다. 채팅 클래스는 다음과 같이 선언됩니다: 서버와 클라이언트는 각각 동일한 RFCOMM 채널에 연결된 BluetoothSocket을 가지고 있을 때 서로 연결된 것으로 간주됩니다.