블루투스 프로필

Bluetooth API는 블루투스 프로필 작업을 지원합니다. 가 블루투스 프로필은 블루투스 기반 무선 인터페이스 사양입니다. 기기 간 통신을 지원할 수 있어야 합니다 휴대기기의 경우 헤드셋에 연결하려면 두 기기 모두 핸즈프리 프로필

Bluetooth API는 다음과 같은 블루투스의 구현을 제공합니다. 프로필:

  • 헤드셋 헤드셋 프로필은 블루투스 헤드셋이 좀 더 까다로워요. Android는 BluetoothHeadset 클래스 블루투스 헤드셋 서비스를 제어하기 위한 프록시입니다. 여기에는 블루투스 헤드셋과 핸즈프리 (v1.5) 프로필을 모두 지원합니다. BluetoothHeadset 클래스에는 AT 명령에 대한 지원이 포함됩니다. 이 주제에 대한 자세한 내용은 공급업체별 AT 명령어.
  • A2DP 고급 오디오 전송 프로필 (A2DP) 프로필은 어떻게 블루투스를 통해 한 기기에서 다른 기기로 고품질 오디오를 스트리밍할 수 있음 연결 Android는 BluetoothA2dp 클래스: 블루투스 A2DP 서비스를 제어하기 위한 프록시입니다.
  • 의료 기기. Android는 블루투스 건강 기기 지원 제공 프로필 (HDP) 이를 통해 블루투스를 사용하여 서로 통신하는 앱을 만들 수 있습니다. 심박수 모니터, 혈압 등 블루투스를 지원하는 의료 기기 사용 시 미터, 온도계, 체중계 등입니다. 지원되는 기기 및 해당하는 기기 데이터 전문화 코드에 대해서는 블루투스 HDP를 참조하세요. 기기 데이터 전문 분야. 이 값은 ISO/IEEE 11073-20601 [7] 사양에서도 참조됩니다. 명명법 부록의 MDC_DEV_SPEC_PROFILE_*에 명시되어 있습니다. 자세한 내용은 HDP에 관한 자세한 내용은 의료 기기 프로필을 참고하세요.

다음은 기본적인 프로필 작업 단계입니다.

  1. 다음에 설명된 대로 기본 어댑터를 가져옵니다. 블루투스 설정.
  2. 설정 BluetoothProfile.ServiceListener 이 리스너는 BluetoothProfile 클라이언트 서비스에 연결되거나 연결 해제된 경우.
  3. 사용 getProfileProxy() 드림 프록시 서버를 통해 연결된 프로필 프록시 객체에 대한 연결을 확인할 수 있습니다. 다음 예에서 프로필 프록시 객체는 BluetoothHeadset
  4. 포함 onServiceConnected()님, 프로필 프록시 객체에 대한 핸들을 가져옵니다.
  5. 프로필 프록시 객체가 있으면 이를 사용하여 연결을 설정하고 해당 프로필과 관련된 다른 작업을 수행할 수 있습니다.

다음 코드 스니펫은 BluetoothHeadset 프록시에 연결하는 방법을 보여줍니다. 개체를 사용하여 헤드셋 프로필을 제어할 수 있습니다.

Kotlin

var bluetoothHeadset: BluetoothHeadset? = null

// Get the default adapter
val bluetoothAdapter: BluetoothAdapter? = BluetoothAdapter.getDefaultAdapter()

private val profileListener = object : BluetoothProfile.ServiceListener {

    override fun onServiceConnected(profile: Int, proxy: BluetoothProfile) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = proxy as BluetoothHeadset
        }
    }

    override fun onServiceDisconnected(profile: Int) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = null
        }
    }
}

// Establish connection to the proxy.
bluetoothAdapter?.getProfileProxy(context, profileListener, BluetoothProfile.HEADSET)

// ... call functions on bluetoothHeadset

// Close proxy connection after use.
bluetoothAdapter?.closeProfileProxy(BluetoothProfile.HEADSET, bluetoothHeadset)

자바

BluetoothHeadset bluetoothHeadset;

// Get the default adapter
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

private BluetoothProfile.ServiceListener profileListener = new BluetoothProfile.ServiceListener() {
    public void onServiceConnected(int profile, BluetoothProfile proxy) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = (BluetoothHeadset) proxy;
        }
    }
    public void onServiceDisconnected(int profile) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = null;
        }
    }
};

// Establish connection to the proxy.
bluetoothAdapter.getProfileProxy(context, profileListener, BluetoothProfile.HEADSET);

// ... call functions on bluetoothHeadset

// Close proxy connection after use.
bluetoothAdapter.closeProfileProxy(bluetoothHeadset);

공급업체 특정 AT 명령어

앱이 사전 정의된 공급업체별 AT의 시스템 브로드캐스트를 수신하도록 등록할 수 있음 헤드셋에서 전송하는 명령 (예: Plantronics +XEVENT 명령) 예를 들어 앱이 연결된 기기의 배터리 수준을 나타내는 브로드캐스트를 수신할 수 있음 사용자에게 알리거나 필요한 다른 조치를 취할 수 있습니다. 방송 만들기 수신자는 ACTION_VENDOR_SPECIFIC_HEADSET_EVENT 드림 헤드셋에 관한 공급업체별 AT 명령어를 처리하기 위한 인텐트입니다.

건강 관리 기기 프로필

Android는 블루투스 의료 기기 프로필 (HDP)을 지원합니다. Bluetooth 상태 API에는 BluetoothHealth님, BluetoothHealthCallback, 및 BluetoothHealthAppConfiguration, 이는 주요 클래스 및 인터페이스를 참조하세요.

Bluetooth Health API를 사용할 때 다음과 같은 주요 HDP를 이해하면 도움이 됩니다. 개념:

소스
체중 체중계, 혈당 측정기, 체온계와 같은 건강 관리 기기 Android 휴대전화 또는 태블릿과 같은 스마트 기기로 의료 데이터를 전송함
싱크
의료 데이터를 수신하는 스마트 기기입니다. HDP 앱에서 싱크는 BluetoothHealthAppConfiguration 객체로 표현됩니다.
등록
특정 상태와 통신하기 위해 싱크를 등록하는 데 사용되는 프로세스 합니다
연결
의료 기기 (출처)와 의료진 간의 채널을 여는 데 사용되는 프로세스 스마트 기기 (싱크)

HDP 앱 만들기

다음은 HDP 앱을 만드는 기본 단계입니다.

  1. BluetoothHealth 프록시 객체에 대한 참조를 가져옵니다. 일반적인 헤드셋 및 A2DP 프로필 기기를 사용하려면 getProfileProxy()BluetoothProfile.ServiceListenerHEALTH 프로필 유형 프로필 프록시 객체와의 연결을 설정합니다.

  2. BluetoothHealthCallback 만들기 및 앱 구성 등록 (BluetoothHealthAppConfiguration)입니다.

  3. 의료 기기 연결을 설정합니다.

  4. 의료 기기에 성공적으로 연결되면 상태 읽기 및 쓰기 할 수 있습니다. 수신된 데이터는 IEEE 11073 사양을 참조하세요.

  5. 완료되면 건강 채널을 닫고 앱을 등록 취소합니다. 채널 또한 확장된 비활성이 있으면 닫힙니다.