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一次只支持一个连接的蓝牙耳机。 每种方法都受到适当权限的保护。
Inherited constants |
---|
From interface android.bluetooth.BluetoothProfile
|
Public methods |
|
---|---|
List<BluetoothDevice> |
getConnectedDevices() 获取此特定配置文件的连接设备。 |
int |
getConnectionState(BluetoothDevice device) 获取配置文件的当前连接状态 需要 |
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
|
String ACTION_AUDIO_STATE_CHANGED
意图用于在A2DP配置文件的音频连接状态中广播更改。
这个意图将有3个额外的:
EXTRA_STATE
- The current state of the profile. EXTRA_PREVIOUS_STATE
- The previous state of the profile. EXTRA_DEVICE
- The remote device. EXTRA_STATE
或 EXTRA_PREVIOUS_STATE
可以是任何的 STATE_AUDIO_CONNECTED
, STATE_AUDIO_DISCONNECTED
,
需要 BLUETOOTH
权限才能接收。
常量值:“android.bluetooth.headset.profile.action.AUDIO_STATE_CHANGED”
String ACTION_CONNECTION_STATE_CHANGED
意图用于广播耳机配置文件连接状态的变化。
这个意图将有3个额外的:
EXTRA_STATE
- The current state of the profile. EXTRA_PREVIOUS_STATE
- The previous state of the profile. EXTRA_DEVICE
- The remote device. EXTRA_STATE
或 EXTRA_PREVIOUS_STATE
可以是任何的 STATE_DISCONNECTED
, STATE_CONNECTING
, STATE_CONNECTED
, STATE_DISCONNECTING
。
需要 BLUETOOTH
许可才能接收。
常量值:“android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED”
String ACTION_VENDOR_SPECIFIC_HEADSET_EVENT
意图用于广播耳机已发布特定于供应商的事件。
这个意图将有4个额外和1个类别。
EXTRA_DEVICE
- The remote Bluetooth Device EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD
- The vendor specific command EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE
- The AT command type which can be one of AT_CMD_TYPE_READ
, AT_CMD_TYPE_TEST
, or AT_CMD_TYPE_SET
, AT_CMD_TYPE_BASIC
,AT_CMD_TYPE_ACTION
. EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_ARGS
- Command arguments. 该类别是定义供应商特定命令的供应商的公司ID。 BluetoothAssignedNumbers
例如,Plantronics特定事件类别将为VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY
.55
例如,AT + XEVENT = foo,3将被翻译成
需要 BLUETOOTH
许可才能接收。
常量值:“android.bluetooth.headset.action.VENDOR_SPECIFIC_HEADSET_EVENT”
int AT_CMD_TYPE_ACTION
AT命令类型ACTION与EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE
使用例如,AT + CHUP。 行动命令没有任何参数。
常量值:4(0x00000004)
int AT_CMD_TYPE_BASIC
AT命令类型BASIC与EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE
使用例如ATD。 单字符命令和字符后面的所有内容都是参数。
常量值:3(0x00000003)
int AT_CMD_TYPE_READ
AT命令类型READ与EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE
使用例如,AT + VGM ?. 这个命令类型没有参数。
常量值:0(0x00000000)
int AT_CMD_TYPE_SET
AT命令类型SET用于EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE
例如,AT + VGM =
常量值:2(0x00000002)
int AT_CMD_TYPE_TEST
AT命令类型TEST与EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE
使用例如,AT + VGM = ?. 这个命令类型没有参数。
常数值:1(0x00000001)
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”
String EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD
ACTION_VENDOR_SPECIFIC_HEADSET_EVENT
意图中包含特定于供应商的命令的名称的字符串额外字段。
常量值:“android.bluetooth.headset.extra.VENDOR_SPECIFIC_HEADSET_EVENT_CMD”
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”
int STATE_AUDIO_CONNECTED
SCO音频连接时的耳机状态。 此状态可以是一个EXTRA_STATE
或者EXTRA_PREVIOUS_STATE
的ACTION_AUDIO_STATE_CHANGED
意图。
常量值:12(0x0000000c)
int STATE_AUDIO_CONNECTING
SCO音频连接时的耳机状态。 此状态可以是一个EXTRA_STATE
或者EXTRA_PREVIOUS_STATE
的ACTION_AUDIO_STATE_CHANGED
意图。
常量值:11(0x0000000b)
int STATE_AUDIO_DISCONNECTED
SCO音频未连接时的耳机状态。 此状态可以是一个EXTRA_STATE
或者EXTRA_PREVIOUS_STATE
的ACTION_AUDIO_STATE_CHANGED
意图。
常量值:10(0x0000000a)
String VENDOR_RESULT_CODE_COMMAND_ANDROID
针对未经请求的结果代码的供应商特定命令。
常量值:“+ ANDROID”
String VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY
与 ACTION_VENDOR_SPECIFIC_HEADSET_EVENT
一起使用的意向类别 ACTION_VENDOR_SPECIFIC_HEADSET_EVENT
常量值:“android.bluetooth.headset.intent.category.companyid”
List<BluetoothDevice> getConnectedDevices ()
获取此特定配置文件的连接设备。
返回处于状态 STATE_CONNECTED
的一组设备
需要 BLUETOOTH
权限。
Returns | |
---|---|
List<BluetoothDevice> |
List of devices. The list will be empty on error. |
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 |
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. |
boolean isAudioConnected (BluetoothDevice device)
检查蓝牙SCO音频是否连接。
需要 BLUETOOTH
权限。
Parameters | |
---|---|
device |
BluetoothDevice : Bluetooth headset |
Returns | |
---|---|
boolean |
true if SCO is connected, false otherwise or on error |
boolean sendVendorSpecificResultCode (BluetoothDevice device, String command, String arg)
向耳机发送特定于供应商的未经请求的结果代码。
实际要发送的字符串是command + ": " + arg
。 例如,如果command
是VENDOR_RESULT_CODE_COMMAND_ANDROID
而arg
是"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 . |
boolean startVoiceRecognition (BluetoothDevice device)
开始蓝牙语音识别。 该方法将语音识别AT命令发送到耳机并建立音频连接。
用户可以收听ACTION_AUDIO_STATE_CHANGED
。 如果此函数返回true,则将使用EXTRA_STATE
设置为STATE_AUDIO_CONNECTING
来广播此意图。
EXTRA_STATE
将过渡从 STATE_AUDIO_CONNECTING
至 STATE_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 |
boolean stopVoiceRecognition (BluetoothDevice device)
停止蓝牙语音识别模式,然后关闭蓝牙音频路径。
需要 BLUETOOTH
权限。
Parameters | |
---|---|
device |
BluetoothDevice : Bluetooth headset |
Returns | |
---|---|
boolean |
false if there is no headset connected or on error, true otherwise |