Most visited

Recently visited

Added in API level 11

BluetoothHeadset

public final class BluetoothHeadset
extends Object implements BluetoothProfile

java.lang.Object
   ↳ android.bluetooth.BluetoothHeadset


用于控制蓝牙耳机服务的公共API。 这包括蓝牙耳机和免提(v1.5)配置文件。

BluetoothHeadset是通过IPC控制蓝牙耳机服务的代理对象。

使用getProfileProxy(Context, BluetoothProfile.ServiceListener, int)来获取BluetoothHeadset代理对象。 使用closeProfileProxy(int, BluetoothProfile)关闭服务连接。

Android一次只支持一个连接的蓝牙耳机。 每种方法都受到适当权限的保护。

Summary

Constants

String ACTION_AUDIO_STATE_CHANGED

意图用于在A2DP配置文件的音频连接状态中广播更改。

String ACTION_CONNECTION_STATE_CHANGED

意图用于广播耳机配置文件连接状态的变化。

String ACTION_VENDOR_SPECIFIC_HEADSET_EVENT

意图用于广播耳机已发布特定于供应商的事件。

int AT_CMD_TYPE_ACTION

AT命令类型ACTION与 EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE使用例如,AT + CHUP。

int AT_CMD_TYPE_BASIC

AT命令类型BASIC与 EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE使用例如ATD。

int AT_CMD_TYPE_READ

AT命令类型READ与 EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE使用例如,AT + VGM ?.

int AT_CMD_TYPE_SET

AT命令类型SET用于EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE例如,AT + VGM =

int AT_CMD_TYPE_TEST

AT命令类型TEST与 EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE使用例如,AT + VGM = ?.

String EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_ARGS

包含供应商特定命令参数的 ACTION_VENDOR_SPECIFIC_HEADSET_EVENT意向中的 ACTION_VENDOR_SPECIFIC_HEADSET_EVENT字符串数组额外字段。

String EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD

包含特定于供应商的命令的名称的 ACTION_VENDOR_SPECIFIC_HEADSET_EVENT意图中的字符串附加字段。

String EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE

ACTION_VENDOR_SPECIFIC_HEADSET_EVENT的int外部字段,其中包含供应商特定命令的AT命令类型。

int STATE_AUDIO_CONNECTED

SCO音频连接时的耳机状态。

int STATE_AUDIO_CONNECTING

SCO音频连接时的耳机状态。

int STATE_AUDIO_DISCONNECTED

SCO音频未连接时的耳机状态。

String VENDOR_RESULT_CODE_COMMAND_ANDROID

针对未经请求的结果代码的供应商特定命令。

String VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY

要与 ACTION_VENDOR_SPECIFIC_HEADSET_EVENT一起使用的意图类别

Inherited constants

From interface android.bluetooth.BluetoothProfile

Public methods

List<BluetoothDevice> getConnectedDevices()

获取此特定配置文件的连接设备。

int getConnectionState(BluetoothDevice device)

获取配置文件的当前连接状态

需要 BLUETOOTH权限。

List<BluetoothDevice> getDevicesMatchingConnectionStates(int[] states)

获取匹配任何给定连接状态的设备列表。

boolean isAudioConnected(BluetoothDevice device)

检查蓝牙SCO音频是否连接。

boolean sendVendorSpecificResultCode(BluetoothDevice device, String command, String arg)

向耳机发送特定于供应商的未经请求的结果代码。

boolean startVoiceRecognition(BluetoothDevice device)

开始蓝牙语音识别。

boolean stopVoiceRecognition(BluetoothDevice device)

停止蓝牙语音识别模式,然后关闭蓝牙音频路径。

Inherited methods

From class java.lang.Object
From interface android.bluetooth.BluetoothProfile

Constants

ACTION_AUDIO_STATE_CHANGED

Added in API level 11
String ACTION_AUDIO_STATE_CHANGED

意图用于在A2DP配置文件的音频连接状态中广播更改。

这个意图将有3个额外的:

EXTRA_STATEEXTRA_PREVIOUS_STATE可以是任何的 STATE_AUDIO_CONNECTEDSTATE_AUDIO_DISCONNECTED

需要 BLUETOOTH权限才能接收。

常量值:“android.bluetooth.headset.profile.action.AUDIO_STATE_CHANGED”

ACTION_CONNECTION_STATE_CHANGED

Added in API level 11
String ACTION_CONNECTION_STATE_CHANGED

意图用于广播耳机配置文件连接状态的变化。

这个意图将有3个额外的:

EXTRA_STATEEXTRA_PREVIOUS_STATE可以是任何的 STATE_DISCONNECTEDSTATE_CONNECTINGSTATE_CONNECTEDSTATE_DISCONNECTING

需要 BLUETOOTH许可才能接收。

常量值:“android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED”

ACTION_VENDOR_SPECIFIC_HEADSET_EVENT

Added in API level 11
String ACTION_VENDOR_SPECIFIC_HEADSET_EVENT

意图用于广播耳机已发布特定于供应商的事件。

这个意图将有4个额外和1个类别。

该类别是定义供应商特定命令的供应商的公司ID。 BluetoothAssignedNumbers例如,Plantronics特定事件类别将为VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY .55

例如,AT + XEVENT = foo,3将被翻译成

  • EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD = +XEVENT
  • EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE = AT_CMD_TYPE_SET
  • EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_ARGS = foo, 3

需要 BLUETOOTH许可才能接收。

常量值:“android.bluetooth.headset.action.VENDOR_SPECIFIC_HEADSET_EVENT”

AT_CMD_TYPE_ACTION

Added in API level 11
int AT_CMD_TYPE_ACTION

AT命令类型ACTION与EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE使用例如,AT + CHUP。 行动命令没有任何参数。

常量值:4(0x00000004)

AT_CMD_TYPE_BASIC

Added in API level 11
int AT_CMD_TYPE_BASIC

AT命令类型BASIC与EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE使用例如ATD。 单字符命令和字符后面的所有内容都是参数。

常量值:3(0x00000003)

AT_CMD_TYPE_READ

Added in API level 11
int AT_CMD_TYPE_READ

AT命令类型READ与EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE使用例如,AT + VGM ?. 这个命令类型没有参数。

常量值:0(0x00000000)

AT_CMD_TYPE_SET

Added in API level 11
int AT_CMD_TYPE_SET

AT命令类型SET用于EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE例如,AT + VGM =

常量值:2(0x00000002)

AT_CMD_TYPE_TEST

Added in API level 11
int AT_CMD_TYPE_TEST

AT命令类型TEST与EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE使用例如,AT + VGM = ?. 这个命令类型没有参数。

常数值:1(0x00000001)

EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_ARGS

Added in API level 11
String EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_ARGS

包含供应商特定命令的参数的 ACTION_VENDOR_SPECIFIC_HEADSET_EVENT意图中的 ACTION_VENDOR_SPECIFIC_HEADSET_EVENT字符串数组额外字段。

常量值:“android.bluetooth.headset.extra.VENDOR_SPECIFIC_HEADSET_EVENT_ARGS”

EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD

Added in API level 11
String EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD

ACTION_VENDOR_SPECIFIC_HEADSET_EVENT意图中包含特定于供应商的命令的名称的字符串额外字段。

常量值:“android.bluetooth.headset.extra.VENDOR_SPECIFIC_HEADSET_EVENT_CMD”

EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE

Added in API level 11
String EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE

ACTION_VENDOR_SPECIFIC_HEADSET_EVENT意图中的int外部字段,其中包含供应商特定命令的AT命令类型。

常量值:“android.bluetooth.headset.extra.VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE”

STATE_AUDIO_CONNECTED

Added in API level 11
int STATE_AUDIO_CONNECTED

SCO音频连接时的耳机状态。 此状态可以是一个EXTRA_STATE或者EXTRA_PREVIOUS_STATEACTION_AUDIO_STATE_CHANGED意图。

常量值:12(0x0000000c)

STATE_AUDIO_CONNECTING

Added in API level 11
int STATE_AUDIO_CONNECTING

SCO音频连接时的耳机状态。 此状态可以是一个EXTRA_STATE或者EXTRA_PREVIOUS_STATEACTION_AUDIO_STATE_CHANGED意图。

常量值:11(0x0000000b)

STATE_AUDIO_DISCONNECTED

Added in API level 11
int STATE_AUDIO_DISCONNECTED

SCO音频未连接时的耳机状态。 此状态可以是一个EXTRA_STATE或者EXTRA_PREVIOUS_STATEACTION_AUDIO_STATE_CHANGED意图。

常量值:10(0x0000000a)

VENDOR_RESULT_CODE_COMMAND_ANDROID

Added in API level 19
String VENDOR_RESULT_CODE_COMMAND_ANDROID

针对未经请求的结果代码的供应商特定命令。

常量值:“+ ANDROID”

VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY

Added in API level 11
String VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY

ACTION_VENDOR_SPECIFIC_HEADSET_EVENT一起使用的意向类别 ACTION_VENDOR_SPECIFIC_HEADSET_EVENT

常量值:“android.bluetooth.headset.intent.category.companyid”

Public methods

getConnectedDevices

Added in API level 11
List<BluetoothDevice> getConnectedDevices ()

获取此特定配置文件的连接设备。

返回处于状态 STATE_CONNECTED的一组设备

需要 BLUETOOTH权限。

Returns
List<BluetoothDevice> List of devices. The list will be empty on error.

getConnectionState

Added in API level 11
int getConnectionState (BluetoothDevice device)

获取配置文件的当前连接状态

需要 BLUETOOTH权限。

Parameters
device BluetoothDevice: Remote bluetooth device.
Returns
int State of the profile connection. One of STATE_CONNECTED, STATE_CONNECTING, STATE_DISCONNECTED, STATE_DISCONNECTING

getDevicesMatchingConnectionStates

Added in API level 11
List<BluetoothDevice> getDevicesMatchingConnectionStates (int[] states)

获取匹配任何给定连接状态的设备列表。

如果没有任何设备匹配任何给定的状态,则会返回空列表。

需要 BLUETOOTH权限。

Parameters
states int: Array of states. States can be one of STATE_CONNECTED, STATE_CONNECTING, STATE_DISCONNECTED, STATE_DISCONNECTING,
Returns
List<BluetoothDevice> List of devices. The list will be empty on error.

isAudioConnected

Added in API level 11
boolean isAudioConnected (BluetoothDevice device)

检查蓝牙SCO音频是否连接。

需要 BLUETOOTH权限。

Parameters
device BluetoothDevice: Bluetooth headset
Returns
boolean true if SCO is connected, false otherwise or on error

sendVendorSpecificResultCode

Added in API level 19
boolean sendVendorSpecificResultCode (BluetoothDevice device, 
                String command, 
                String arg)

向耳机发送特定于供应商的未经请求的结果代码。

实际要发送的字符串是command + ": " + arg 例如,如果commandVENDOR_RESULT_CODE_COMMAND_ANDROIDarg"0" ,则将发送字符串"+ANDROID: 0"

目前只有 VENDOR_RESULT_CODE_COMMAND_ANDROID被允许为 command

需要 BLUETOOTH权限。

Parameters
device BluetoothDevice: Bluetooth headset.
command String: A vendor-specific command.
arg String: The argument that will be attached to the command.
Returns
boolean false if there is no headset connected, or if the command is not an allowed vendor-specific unsolicited result code, or on error. true otherwise.
Throws
IllegalArgumentException if command is null.

startVoiceRecognition

Added in API level 11
boolean startVoiceRecognition (BluetoothDevice device)

开始蓝牙语音识别。 该方法将语音识别AT命令发送到耳机并建立音频连接。

用户可以收听ACTION_AUDIO_STATE_CHANGED 如果此函数返回true,则将使用EXTRA_STATE设置为STATE_AUDIO_CONNECTING来广播此意图。

EXTRA_STATE将过渡从 STATE_AUDIO_CONNECTINGSTATE_AUDIO_CONNECTED时建立音频连接和 STATE_AUDIO_DISCONNECTED中未能建立音频连接的情况下。

需要 BLUETOOTH权限。

Parameters
device BluetoothDevice: Bluetooth headset
Returns
boolean false if there is no headset connected of if the connected headset doesn't support voice recognition or on error, true otherwise

stopVoiceRecognition

Added in API level 11
boolean stopVoiceRecognition (BluetoothDevice device)

停止蓝牙语音识别模式,然后关闭蓝牙音频路径。

需要 BLUETOOTH权限。

Parameters
device BluetoothDevice: Bluetooth headset
Returns
boolean false if there is no headset connected or on error, true otherwise

Hooray!