android.support.v14.preference
android.support.v17.leanback
android.support.v17.leanback.app
android.support.v17.leanback.database
android.support.v17.leanback.graphics
android.support.v17.leanback.system
android.support.v17.leanback.widget
android.support.v17.leanback.widget.picker
android.support.v17.preference
android.support.v4
android.support.v4.accessibilityservice
android.support.v4.app
android.support.v4.content
android.support.v4.content.pm
android.support.v4.content.res
android.support.v4.database
android.support.v4.graphics
android.support.v4.graphics.drawable
android.support.v4.hardware.display
android.support.v4.hardware.fingerprint
android.support.v4.media
android.support.v4.media.session
android.support.v4.net
android.support.v4.os
android.support.v4.print
android.support.v4.provider
android.support.v4.text
android.support.v4.util
android.support.v4.view
android.support.v4.view.accessibility
android.support.v4.view.animation
android.support.v4.widget
android.support.v7.app
android.support.v7.appcompat
android.support.v7.cardview
android.support.v7.content.res
android.support.v7.graphics
android.support.v7.graphics.drawable
android.support.v7.gridlayout
android.support.v7.media
android.support.v7.mediarouter
android.support.v7.palette
android.support.v7.preference
android.support.v7.recyclerview
android.support.v7.util
android.support.v7.view
android.support.v7.widget
android.support.v7.widget.helper
android.support.v7.widget.util
android.support.v8.renderscript
android.system
android.telecom
android.telephony
android.telephony.cdma
android.telephony.gsm
android.test
android.test.mock
android.test.suitebuilder
android.test.suitebuilder.annotation
android.text
android.text.format
android.text.method
android.text.style
android.text.util
android.transition
android.util
android.view
android.view.accessibility
android.view.animation
android.view.inputmethod
android.view.textservice
android.webkit
android.widget
com.android.internal.backup
com.android.internal.logging
com.android.internal.os
com.android.internal.statusbar
com.android.internal.widget
com.android.test.runner
dalvik.annotation
dalvik.bytecode
dalvik.system
java.awt.font
java.beans
java.io
java.lang
java.lang.annotation
java.lang.ref
java.lang.reflect
java.math
java.net
java.nio
java.nio.channels
java.nio.channels.spi
java.nio.charset
java.nio.charset.spi
java.security
java.security.acl
java.security.cert
java.security.interfaces
java.security.spec
java.sql
java.text
java.util
java.util.concurrent
java.util.concurrent.atomic
java.util.concurrent.locks
java.util.function
java.util.jar
java.util.logging
java.util.prefs
java.util.regex
java.util.stream
java.util.zip
javax.crypto
javax.crypto.interfaces
javax.crypto.spec
javax.microedition.khronos.egl
javax.microedition.khronos.opengles
javax.net
javax.net.ssl
javax.security.auth
javax.security.auth.callback
javax.security.auth.login
javax.security.auth.x500
javax.security.cert
javax.sql
javax.xml
javax.xml.datatype
javax.xml.namespace
javax.xml.parsers
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.sax
javax.xml.transform.stream
javax.xml.validation
javax.xml.xpath
junit.framework
junit.runner
org.apache.http.conn
org.apache.http.conn.scheme
org.apache.http.conn.ssl
org.apache.http.params
org.json
org.w3c.dom
org.w3c.dom.ls
org.xml.sax
org.xml.sax.ext
org.xml.sax.helpers
org.xmlpull.v1
org.xmlpull.v1.sax2
Interfaces
BluetoothAdapter.LeScanCallback
BluetoothProfile
BluetoothProfile.ServiceListener
Classes
BluetoothA2dp
BluetoothAdapter
BluetoothAssignedNumbers
BluetoothClass
BluetoothClass.Device
BluetoothClass.Device.Major
BluetoothClass.Service
BluetoothDevice
BluetoothGatt
BluetoothGattCallback
BluetoothGattCharacteristic
BluetoothGattDescriptor
BluetoothGattServer
BluetoothGattServerCallback
BluetoothGattService
BluetoothHeadset
BluetoothHealth
BluetoothHealthAppConfiguration
BluetoothHealthCallback
BluetoothManager
BluetoothServerSocket
BluetoothSocket
代表本地设备蓝牙适配器。
BluetoothAdapter
可让您执行基本的蓝牙任务,例如启动设备发现,查询绑定(配对)设备列表,使用已知MAC地址实例化
BluetoothDevice
,并创建一个
BluetoothServerSocket
以侦听来自其他设备的连接请求,并启动扫描蓝牙LE设备。
为了得到一个
BluetoothAdapter
代表本地蓝牙适配器,上JELLY_BEAN_MR1运行及以下,调用静态时
getDefaultAdapter()
方法;
当在JELLY_BEAN_MR2及更高版本上运行时,请致电
getAdapter()
。
从根本上说,这是您所有蓝牙操作的起点。
一旦拥有本地适配器,您就可以获得一组代表所有配对设备的
BluetoothDevice
对象,其中
getBondedDevices()
;
用
startDiscovery()
启动设备发现;
或创建
BluetoothServerSocket
听与传入的连接请求
listenUsingRfcommWithServiceRecord(String, UUID)
;
或使用
startLeScan(LeScanCallback)
开始扫描蓝牙LE设备。
这个类是线程安全的。
注意:
大多数方法需要
BLUETOOTH
权限,有些还需要
BLUETOOTH_ADMIN
权限。
Developer Guides
有关使用蓝牙的更多信息,请阅读
Bluetooth
开发人员指南。
也可以看看:
BluetoothDevice
BluetoothServerSocket
Summary
String
EXTRA_DISCOVERABLE_DURATION
在
ACTION_REQUEST_DISCOVERABLE
意图中作为可选的int额外字段用于在几秒钟内请求特定的发现持续时间。
String
EXTRA_LOCAL_NAME
在
ACTION_LOCAL_NAME_CHANGED
意图中用作字符串额外字段以请求本地蓝牙名称。
String
EXTRA_PREVIOUS_CONNECTION_STATE
额外使用
ACTION_CONNECTION_STATE_CHANGED
这额外代表了以前的连接状态。
String
EXTRA_PREVIOUS_SCAN_MODE
在
ACTION_SCAN_MODE_CHANGED
意图中作为int外部字段使用,以请求先前的扫描模式。
String
EXTRA_PREVIOUS_STATE
在
ACTION_STATE_CHANGED
意图中作为int外部字段使用,以请求先前的电源状态。
String
EXTRA_SCAN_MODE
用作
ACTION_SCAN_MODE_CHANGED
意图中的int外部字段以请求当前的扫描模式。
String
EXTRA_STATE
在
ACTION_STATE_CHANGED
意图中
ACTION_STATE_CHANGED
请求当前电源状态的int额外字段。
SCAN_MODE_CONNECTABLE
表示查询扫描已禁用,但本地蓝牙适配器上已启用页面扫描。
SCAN_MODE_CONNECTABLE_DISCOVERABLE
表示在本地蓝牙适配器上启用了查询扫描和页面扫描。
SCAN_MODE_NONE
表示在本地蓝牙适配器上禁用查询扫描和页面扫描。
STATE_CONNECTED
该配置文件处于连接状态
STATE_CONNECTING
该配置文件处于连接状态
STATE_DISCONNECTED
配置文件处于断开状态
STATE_DISCONNECTING
配置文件处于断开状态
STATE_OFF
表示本地蓝牙适配器已关闭。
STATE_ON
表示本地蓝牙适配器已开启,并可供使用。
STATE_TURNING_OFF
表示本地蓝牙适配器已关闭。
STATE_TURNING_ON
表示本地蓝牙适配器正在打开。
static boolean
checkBluetoothAddress
(
String
address)
验证字符串蓝牙地址,例如“00:43:A8:23:10:F0”
字母字符必须大写才能有效。
closeProfileProxy
(int profile,
BluetoothProfile
proxy)
关闭配置文件代理连接到服务。
boolean
disable
()
关闭本地蓝牙适配器 - 不要使用没有明确的用户操作来关闭蓝牙。
boolean
enable
()
打开本地蓝牙适配器 - 不要使用没有明确的用户操作来打开蓝牙。
String
getAddress
()
返回本地蓝牙适配器的硬件地址。
BluetoothLeAdvertiser
getBluetoothLeAdvertiser
()
返回Bluetooth LE广告操作的
BluetoothLeAdvertiser
对象。
BluetoothLeScanner
getBluetoothLeScanner
()
返回蓝牙LE扫描操作的
BluetoothLeScanner
对象。
Set
<
BluetoothDevice
>
getBondedDevices
()
将绑定(配对)的
BluetoothDevice
对象返回到本地适配器。
static
BluetoothAdapter
getDefaultAdapter
()
获取默认本地蓝牙适配器的句柄。
String
getName
()
获取本地蓝牙适配器的友好蓝牙名称。
getProfileConnectionState
(int profile)
获取配置文件的当前连接状态。
boolean
getProfileProxy
(
Context
context,
BluetoothProfile.ServiceListener
listener, int profile)
获取与配置文件关联的配置文件代理对象。
BluetoothDevice
getRemoteDevice
(byte[] address)
获取给定蓝牙硬件地址的
BluetoothDevice
对象。
BluetoothDevice
getRemoteDevice
(
String
address)
获取给定蓝牙硬件地址的
BluetoothDevice
对象。
getScanMode
()
获取本地蓝牙适配器的当前蓝牙扫描模式。
getState
()
获取本地蓝牙适配器的当前状态。
boolean
isDiscovering
()
如果本地蓝牙适配器当前处于设备发现过程中,则返回true。
boolean
isEnabled
()
如果蓝牙当前已启用且可以使用,则返回true。
boolean
isMultipleAdvertisementSupported
()
如果芯片组支持多广告,则返回true
boolean
isOffloadedFilteringSupported
()
如果支持卸载过滤器,则返回true
boolean
isOffloadedScanBatchingSupported
()
如果支持卸载扫描批处理,则返回true
BluetoothServerSocket
listenUsingInsecureRfcommWithServiceRecord
(
String
name,
UUID
uuid)
创建一个监听,不安全的带有服务记录的RFCOMM蓝牙套接字。
BluetoothServerSocket
listenUsingRfcommWithServiceRecord
(
String
name,
UUID
uuid)
创建一个带有服务记录的监听,安全的RFCOMM蓝牙套接字。
boolean
setName
(
String
name)
设置本地蓝牙适配器的友好蓝牙名称。
boolean
startDiscovery
()
启动远程设备发现过程。
boolean
startLeScan
(
UUID[]
serviceUuids,
BluetoothAdapter.LeScanCallback
callback)
此方法在API级别21中已弃用。
startScan(List, ScanSettings, ScanCallback)
改为使用
startScan(List, ScanSettings, ScanCallback)
。
boolean
startLeScan
(
BluetoothAdapter.LeScanCallback
callback)
此方法在API级别21中已弃用。
startScan(List, ScanSettings, ScanCallback)
改为使用
startScan(List, ScanSettings, ScanCallback)
。
stopLeScan
(
BluetoothAdapter.LeScanCallback
callback)
此方法在API级别21中已弃用。请改为使用
stopScan(ScanCallback)
。
final void
wait
(long millis, int nanos)
导致当前线程等待,直到另一个线程为该对象调用
notify()
方法或
notifyAll()
方法,或者某个其他线程中断当前线程,或者经过了一定的实时时间。
final void
wait
(long millis)
导致当前线程等待,直到另一个线程调用此对象的
notify()
方法或
notifyAll()
方法或经过了指定的时间量。
final void
wait
()
导致当前线程等待,直到另一个线程调用此对象的
notify()
方法或
notifyAll()
方法。
String
ACTION_CONNECTION_STATE_CHANGED
意图用于将本地蓝牙适配器连接状态的变化广播到远程设备的配置文件。
当适配器未连接到任何远程设备的任何配置文件并尝试连接到配置文件时,此意图将被发送。
一旦连接,此意图将不会被发送到任何远程设备的任何配置文件的任何更多连接尝试。
当适配器从最后一个配置文件断开连接到任何远程设备时,这个意图将被发送。
这个意图对于只关心本地适配器是否连接到任何设备的任何配置文件并且不关心哪个配置文件的应用程序很有用。
例如,显示图标以显示是否连接蓝牙的应用程序可以使用此意图。
这个意图将有3个额外的:
EXTRA_CONNECTION_STATE
- 当前的连接状态。
EXTRA_PREVIOUS_CONNECTION_STATE
- 上一个连接状态。
EXTRA_DEVICE
- 远程设备。
EXTRA_CONNECTION_STATE
或
EXTRA_PREVIOUS_CONNECTION_STATE
可以是任何的
STATE_DISCONNECTED
,
STATE_CONNECTING
,
STATE_CONNECTED
,
STATE_DISCONNECTING
。
需要
BLUETOOTH
才能收到。
常量值:“android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED”
ACTION_DISCOVERY_FINISHED
Added in
API level 5
String
ACTION_DISCOVERY_FINISHED
广播动作:本地蓝牙适配器已完成设备发现过程。
需要
BLUETOOTH
才能收到。
常量值:“android.bluetooth.adapter.action.DISCOVERY_FINISHED”
ACTION_DISCOVERY_STARTED
Added in
API level 5
String
ACTION_DISCOVERY_STARTED
广播动作:本地蓝牙适配器已启动远程设备发现过程。
这通常涉及约12秒的查询扫描,然后是每个新设备的页面扫描以检索其蓝牙名称。
注册
ACTION_FOUND
以在发现远程蓝牙设备时收到通知。
设备发现是一个重量级的过程。
在进行发现时,不应尝试新建与远程蓝牙设备的连接,现有连接将经历有限的带宽和高延迟。
使用
cancelDiscovery()
取消正在进行的发现。
需要
BLUETOOTH
才能收到。
常量值:“android.bluetooth.adapter.action.DISCOVERY_STARTED”
ACTION_LOCAL_NAME_CHANGED
Added in
API level 5
String
ACTION_LOCAL_NAME_CHANGED
广播动作:本地蓝牙适配器已更改其友好蓝牙名称。
该名称对远程蓝牙设备可见。
始终包含包含名称的额外字段
EXTRA_LOCAL_NAME
。
需要
BLUETOOTH
才能收到。
常量值:“android.bluetooth.adapter.action.LOCAL_NAME_CHANGED”
ACTION_REQUEST_DISCOVERABLE
Added in
API level 5
String
ACTION_REQUEST_DISCOVERABLE
活动操作:显示请求可发现模式的系统活动。
如果当前未启用,此活动还会要求用户打开蓝牙。
可发现模式相当于
SCAN_MODE_CONNECTABLE_DISCOVERABLE
。
它允许远程设备在执行发现时看到此蓝牙适配器。
为了保护隐私,默认情况下Android不可发现。
此Intent的发件人可以选择使用额外字段
EXTRA_DISCOVERABLE_DURATION
来请求发现的持续时间。
目前默认的持续时间是120秒,每个请求的最大持续时间被限制在300秒。
使用回调
onActivityResult(int, int, Intent)
发布此活动结果的通知。
resultCode
将是可发现性的持续时间(以秒为单位),如果用户拒绝发现或发生错误,
RESULT_CANCELED
。
每当扫描模式改变时,应用程序也可以侦听
ACTION_SCAN_MODE_CHANGED
以获取全局通知。
例如,当设备结束发现时,可以通知应用程序。
需要
BLUETOOTH
常量值:“android.bluetooth.adapter.action.REQUEST_DISCOVERABLE”
ACTION_REQUEST_ENABLE
Added in
API level 5
String
ACTION_REQUEST_ENABLE
活动操作:显示允许用户打开蓝牙的系统活动。
一旦蓝牙完成打开,或者用户决定不打开蓝牙,该系统活动将返回。
使用
onActivityResult(int, int, Intent)
回调通知此活动结果的通知。
如果蓝牙已打开,则
RESULT_CANCELED
如果用户拒绝了请求或发生了错误,则
resultCode
将为
RESULT_OK
。
无论蓝牙开启还是关闭,应用程序还可以监听
ACTION_STATE_CHANGED
的全局通知。
需要
BLUETOOTH
常量值:“android.bluetooth.adapter.action.REQUEST_ENABLE”
ACTION_SCAN_MODE_CHANGED
Added in
API level 5
String
ACTION_SCAN_MODE_CHANGED
广播动作:表示本地适配器的蓝牙扫描模式已更改。
始终包含
EXTRA_PREVIOUS_SCAN_MODE
包含新旧扫描模式的额外字段
EXTRA_SCAN_MODE
和
EXTRA_PREVIOUS_SCAN_MODE
。
需要
BLUETOOTH
常量值:“android.bluetooth.adapter.action.SCAN_MODE_CHANGED”
ACTION_STATE_CHANGED
Added in
API level 5
String
ACTION_STATE_CHANGED
广播动作:本地蓝牙适配器的状态已更改。
例如,蓝牙已被打开或关闭。
始终包含分别包含新状态和旧状态的额外字段
EXTRA_STATE
和
EXTRA_PREVIOUS_STATE
。
需要
BLUETOOTH
才能收到。
常量值:“android.bluetooth.adapter.action.STATE_CHANGED”
ERROR
Added in
API level 5
int ERROR
这个类的Sentinel错误值。
保证在这个类中不等于任何其他整数常量。
为便于需要标记错误值的函数提供,例如:
Intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR)
常量值:-2147483648(0x80000000)
EXTRA_CONNECTION_STATE
Added in
API level 11
String
EXTRA_CONNECTION_STATE
额外使用
ACTION_CONNECTION_STATE_CHANGED
这额外代表当前的连接状态。
常量值:“android.bluetooth.adapter.extra.CONNECTION_STATE”
EXTRA_DISCOVERABLE_DURATION
Added in
API level 5
String
EXTRA_DISCOVERABLE_DURATION
在
ACTION_REQUEST_DISCOVERABLE
意图中作为可选的int额外字段用于在几秒钟内请求特定的发现持续时间。
当前的默认值是120秒,超过300秒的请求将被限制。
这些值可能会改变。
常量值:“android.bluetooth.adapter.extra.DISCOVERABLE_DURATION”
EXTRA_LOCAL_NAME
Added in
API level 5
String
EXTRA_LOCAL_NAME
用作请求本地蓝牙名称的
ACTION_LOCAL_NAME_CHANGED
意图中的字符串额外字段。
常量值:“android.bluetooth.adapter.extra.LOCAL_NAME”
EXTRA_PREVIOUS_CONNECTION_STATE
Added in
API level 11
String
EXTRA_PREVIOUS_CONNECTION_STATE
额外使用
ACTION_CONNECTION_STATE_CHANGED
这额外代表了以前的连接状态。
常量值:“android.bluetooth.adapter.extra.PREVIOUS_CONNECTION_STATE”
EXTRA_PREVIOUS_SCAN_MODE
Added in
API level 5
String
EXTRA_PREVIOUS_SCAN_MODE
在
ACTION_SCAN_MODE_CHANGED
意图中作为int外部字段使用,以请求先前的扫描模式。
可能的值有:
SCAN_MODE_NONE
,
SCAN_MODE_CONNECTABLE
,
SCAN_MODE_CONNECTABLE_DISCOVERABLE
,
常量值:“android.bluetooth.adapter.extra.PREVIOUS_SCAN_MODE”
EXTRA_PREVIOUS_STATE
Added in
API level 5
String
EXTRA_PREVIOUS_STATE
在
ACTION_STATE_CHANGED
意图中
ACTION_STATE_CHANGED
请求之前电源状态的int外部字段。
可能的值有:
STATE_OFF
,
STATE_TURNING_ON
,
STATE_ON
,
STATE_TURNING_OFF
常量值:“android.bluetooth.adapter.extra.PREVIOUS_STATE”
EXTRA_SCAN_MODE
Added in
API level 5
String
EXTRA_SCAN_MODE
在
ACTION_SCAN_MODE_CHANGED
意图中
ACTION_SCAN_MODE_CHANGED
请求当前扫描模式的int extra字段。
可能的值有:
SCAN_MODE_NONE
,
SCAN_MODE_CONNECTABLE
,
SCAN_MODE_CONNECTABLE_DISCOVERABLE
,
常量值:“android.bluetooth.adapter.extra.SCAN_MODE”
EXTRA_STATE
Added in
API level 5
String
EXTRA_STATE
在
ACTION_STATE_CHANGED
意图中用作int extra字段以请求当前的电源状态。
可能的值有:
STATE_OFF
,
STATE_TURNING_ON
,
STATE_ON
,
STATE_TURNING_OFF
,
常量值:“android.bluetooth.adapter.extra.STATE”
SCAN_MODE_CONNECTABLE
Added in
API level 5
int SCAN_MODE_CONNECTABLE
表示查询扫描已禁用,但本地蓝牙适配器上已启用页面扫描。
因此,此设备无法从远程蓝牙设备中发现,但可以从先前发现此设备的远程设备连接。
常量值:21(0x00000015)
SCAN_MODE_CONNECTABLE_DISCOVERABLE
Added in
API level 5
int SCAN_MODE_CONNECTABLE_DISCOVERABLE
表示在本地蓝牙适配器上启用了查询扫描和页面扫描。
因此,该设备既可被发现,也可从远程蓝牙设备连接。
常量值:23(0x00000017)
SCAN_MODE_NONE
Added in
API level 5
int SCAN_MODE_NONE
表示在本地蓝牙适配器上禁用查询扫描和页面扫描。
因此,该设备既不可发现也不能从远程蓝牙设备连接。
常量值:20(0x00000014)
STATE_CONNECTED
Added in
API level 11
int STATE_CONNECTED
该配置文件处于连接状态
常量值:2(0x00000002)
STATE_CONNECTING
Added in
API level 11
int STATE_CONNECTING
该配置文件处于连接状态
常数值:1(0x00000001)
STATE_DISCONNECTED
Added in
API level 11
int STATE_DISCONNECTED
配置文件处于断开状态
常量值:0(0x00000000)
STATE_DISCONNECTING
Added in
API level 11
int STATE_DISCONNECTING
配置文件处于断开状态
常量值:3(0x00000003)
STATE_OFF
Added in
API level 5
int STATE_OFF
表示本地蓝牙适配器已关闭。
常量值:10(0x0000000a)
STATE_ON
Added in
API level 5
int STATE_ON
表示本地蓝牙适配器已开启,并可供使用。
常量值:12(0x0000000c)
STATE_TURNING_OFF
Added in
API level 5
int STATE_TURNING_OFF
表示本地蓝牙适配器已关闭。
本地客户端应立即尝试正常断开任何远程链接。
常量值:13(0x0000000d)
STATE_TURNING_ON
Added in
API level 5
int STATE_TURNING_ON
表示本地蓝牙适配器正在打开。
但是,在尝试使用适配器之前,本地客户端应等待
STATE_ON
。
常量值:11(0x0000000b)
取消当前的设备发现过程。
需要
BLUETOOTH_ADMIN
。
由于发现是蓝牙适配器的重量级过程,因此应在尝试连接到具有
connect()
的远程设备之前始终调用此方法。
发现不是由Activity管理的,而是作为系统服务运行的,所以即使应用程序没有直接请求发现,也应该始终调用取消发现。
如果蓝牙状态不是
STATE_ON
,则此API将返回false。
打开蓝牙后,请等待
ACTION_STATE_CHANGED
与
STATE_ON
以获取更新的值。
Returns
boolean
true on success, false on error
关闭本地蓝牙适配器 - 不要使用没有明确的用户操作来关闭蓝牙。
这会优雅地关闭所有蓝牙连接,停止蓝牙系统服务并关闭底层蓝牙硬件。
未经用户直接同意,不应禁用蓝牙
。
disable()
方法仅适用于包含用于更改系统设置的用户界面的应用程序,例如“电源管理器”应用程序。
这是一个异步调用:它将立即返回,并且客户端应该监听
ACTION_STATE_CHANGED
以通知后续适配器状态更改。
如果此调用返回true,则适配器状态将立即从
STATE_ON
过渡到
STATE_TURNING_OFF
,并且稍后过渡到
STATE_OFF
或
STATE_ON
。
如果这个调用返回false,那么有一个直接的问题会阻止适配器被关闭 - 比如适配器已经被关闭。
需要
BLUETOOTH_ADMIN
权限
Returns
boolean
true to indicate adapter shutdown has begun, or false on immediate error
打开本地蓝牙适配器 - 不要使用没有明确的用户操作来打开蓝牙。
这会启用底层蓝牙硬件,并启动所有蓝牙系统服务。
未经用户直接同意,不应启用蓝牙
。
如果要打开蓝牙以创建无线连接,则应使用
ACTION_REQUEST_ENABLE
意图,这会引发一个请求用户许可以打开蓝牙的对话框。
enable()
方法仅适用于包含用于更改系统设置的用户界面的应用程序,例如“电源管理器”应用程序。
这是一个异步调用:它将立即返回,并且客户端应该监听
ACTION_STATE_CHANGED
以通知后续适配器状态更改。
如果此调用返回true,则适配器状态将立即从
STATE_OFF
转换为
STATE_TURNING_ON
,并且稍后过渡到
STATE_OFF
或
STATE_ON
。
如果此调用返回false,则会有一个直接问题阻止适配器开启 - 例如飞行模式,或者适配器已打开。
需要
BLUETOOTH_ADMIN
权限
Returns
boolean
true to indicate adapter startup has begun, or false on immediate error
BluetoothLeAdvertiser
getBluetoothLeAdvertiser ()
返回Bluetooth LE广告操作的
BluetoothLeAdvertiser
对象。
如果蓝牙关闭或者此设备不支持蓝牙LE广告,则返回null。
在调用此方法之前,请使用
isMultipleAdvertisementSupported()
检查此设备是否支持LE广告。
Returns
BluetoothLeAdvertiser
Set
<
BluetoothDevice
> getBondedDevices ()
将绑定(配对)的一组
BluetoothDevice
对象返回到本地适配器。
如果蓝牙状态不是
STATE_ON
,则此API将返回一个空集。
打开蓝牙后,等待
ACTION_STATE_CHANGED
与
STATE_ON
以获取更新的值。
需要
BLUETOOTH
。
Returns
Set
<
BluetoothDevice
>
unmodifiable set of
BluetoothDevice
, or null on error
int getProfileConnectionState (int profile)
获取配置文件的当前连接状态。
该功能可用于检查本地蓝牙适配器是否连接到任何远程设备以获取特定配置文件。
简介可以是一个
HEALTH
,
HEADSET
,
A2DP
。
需要
BLUETOOTH
。
返回值可以是一个
STATE_DISCONNECTED
,
STATE_CONNECTING
,
STATE_CONNECTED
,
STATE_DISCONNECTING
Parameters
profile
boolean getProfileProxy (
Context
context,
BluetoothProfile.ServiceListener
listener,
int profile)
获取与配置文件关联的配置文件代理对象。
简介可以是一个
HEALTH
,
HEADSET
,
A2DP
,
GATT
,或
GATT_SERVER
。
客户端必须实现
BluetoothProfile.ServiceListener
以获得连接状态的通知并获取代理对象。
Parameters
context
Context
: Context of the application
listener
BluetoothProfile.ServiceListener
: The service Listener for connection callbacks.
profile
int
: The Bluetooth profile; either
HEALTH
,
HEADSET
,
A2DP
.
GATT
or
GATT_SERVER
.
BluetoothDevice
getRemoteDevice (byte[] address)
获取给定蓝牙硬件地址的
BluetoothDevice
对象。
有效的蓝牙硬件地址必须是6个字节。
此方法预计网络字节顺序中的地址(MSB在前)。
一个
BluetoothDevice
将始终返回有效的硬件地址,即使此适配器从未见过该设备。
Parameters
address
byte
: Bluetooth MAC address (6 bytes)
BluetoothDevice
getRemoteDevice (
String
address)
获取给定蓝牙硬件地址的
BluetoothDevice
对象。
有效的蓝牙硬件地址必须是大写,格式为“00:11:22:33:AA:BB”。
助手
checkBluetoothAddress(String)
可用于验证蓝牙地址。
一个
BluetoothDevice
将始终返回有效的硬件地址,即使此适配器从未看过该设备。
Parameters
address
String
: valid Bluetooth MAC address
获取本地蓝牙适配器的当前蓝牙扫描模式。
蓝牙扫描模式确定本地适配器是否可从远程蓝牙设备连接和/或发现。
可能的值有:
SCAN_MODE_NONE
,
SCAN_MODE_CONNECTABLE
,
SCAN_MODE_CONNECTABLE_DISCOVERABLE
。
如果蓝牙状态不是
STATE_ON
,则此API将返回
SCAN_MODE_NONE
。
打开蓝牙后,等待
ACTION_STATE_CHANGED
与
STATE_ON
以获取更新的值。
需要
BLUETOOTH
Returns
scan mode
int getState ()
获取本地蓝牙适配器的当前状态。
可能的返回值是
STATE_OFF
,
STATE_TURNING_ON
,
STATE_ON
,
STATE_TURNING_OFF
。
需要
BLUETOOTH
Returns
current state of Bluetooth adapter
boolean isDiscovering ()
如果本地蓝牙适配器当前处于设备发现过程中,则返回true。
设备发现是一个重量级的过程。
在进行发现时,不应尝试新建与远程蓝牙设备的连接,现有连接将经历有限的带宽和高延迟。
使用
cancelDiscovery()
取消正在进行的发现。
应用程序还可以注册
ACTION_DISCOVERY_STARTED
或
ACTION_DISCOVERY_FINISHED
,以便在发现开始或完成时收到通知。
如果蓝牙状态不是
STATE_ON
,则此API将返回false。
打开蓝牙后,等待
ACTION_STATE_CHANGED
与
STATE_ON
以获取更新的值。
需要
BLUETOOTH
。
Returns
boolean
true if discovering
BluetoothServerSocket
listenUsingInsecureRfcommWithServiceRecord (
String
name,
UUID
uuid)
创建一个监听,不安全的带有服务记录的RFCOMM蓝牙套接字。
链接密钥不需要被认证,即通信可能容易受到中间人攻击。
对于蓝牙2.1设备,链路将被加密,因为加密是强制性的。
对于传统设备(预蓝牙2.1设备),链路不会被加密。
如果需要加密和认证通信通道,请使用
listenUsingRfcommWithServiceRecord(String, UUID)
。
使用
accept()
从侦听
BluetoothServerSocket
检索传入连接。
系统将分配一个未使用的RFCOMM通道进行侦听。
系统还将在本地SDP服务器上注册服务发现协议(SDP)记录,其中包含指定的UUID,服务名称和自动分配的信道。
远程蓝牙设备可以使用相同的UUID来查询我们的SDP服务器并发现要连接的通道。
此套接字关闭时,此SDP记录将被删除,或者此应用程序意外关闭。
使用
createRfcommSocketToServiceRecord(UUID)
使用同一个
UUID
从另一个设备连接到此插座。
需要
BLUETOOTH
Parameters
String
: service name for SDP record
UUID
: uuid for SDP record
BluetoothServerSocket
listenUsingRfcommWithServiceRecord (
String
name,
UUID
uuid)
创建一个带有服务记录的监听,安全的RFCOMM蓝牙套接字。
连接到此套接字的远程设备将被验证,并且此套接字上的通信将被加密。
使用
accept()
从聆听
BluetoothServerSocket
检索传入连接。
系统将分配一个未使用的RFCOMM通道进行侦听。
系统还将在本地SDP服务器上注册服务发现协议(SDP)记录,其中包含指定的UUID,服务名称和自动分配的信道。
远程蓝牙设备可以使用相同的UUID来查询我们的SDP服务器并发现要连接的通道。
此套接字关闭时,此SDP记录将被删除,或者此应用程序意外关闭。
使用
createRfcommSocketToServiceRecord(UUID)
使用同一个
UUID
从另一个设备连接到此插座。
需要
BLUETOOTH
Parameters
String
: service name for SDP record
UUID
: uuid for SDP record
该名称对远程蓝牙设备可见。
尽管许多远程设备只能显示前40个字符,而有些可能仅限于20个,但有效的蓝牙名称最多使用UTF-8编码为248个字节。
如果蓝牙状态不是
STATE_ON
,则此API将返回false。
打开蓝牙后,等待
ACTION_STATE_CHANGED
与
STATE_ON
以获取更新的值。
需要
BLUETOOTH_ADMIN
Parameters
String
: a valid Bluetooth name
启动远程设备发现过程。
发现过程通常涉及大约12秒的查询扫描,然后是每个新设备的页面扫描以检索其蓝牙名称。
这是一个异步调用,它会立即返回。
注册
ACTION_DISCOVERY_STARTED
和
ACTION_DISCOVERY_FINISHED
意图以确定发现何时开始和完成的确切时间。
注册
ACTION_FOUND
以便在发现远程蓝牙设备时收到通知。
设备发现是一个重量级的过程。
在进行发现时,不应尝试新建与远程蓝牙设备的连接,现有连接将经历有限的带宽和高延迟。
使用
cancelDiscovery()
取消正在进行的发现。
发现不是由Activity管理的,而是作为系统服务运行的,因此即使应用程序没有直接请求发现,也应该始终调用
cancelDiscovery()
,只是为了确保。
设备发现只能找到当前可
发现的
远程设备(启用查询扫描)。
许多蓝牙设备默认情况下都不可发现,需要进入特殊模式。
如果蓝牙状态不是
STATE_ON
,则此API将返回false。
打开蓝牙后,等待
ACTION_STATE_CHANGED
与
STATE_ON
以获取更新的值。
需要
BLUETOOTH_ADMIN
。
Returns
boolean
true on success, false on error
BluetoothAdapter.LeScanCallback
callback)
此方法在API级别21中已弃用。
改为使用
startScan(List, ScanSettings, ScanCallback)
。
开始扫描蓝牙LE设备,寻找广告给定服务的设备。
使用
onLeScan(BluetoothDevice, int, byte[])
回
onLeScan(BluetoothDevice, int, byte[])
报告广告所有指定服务的设备。
需要
BLUETOOTH_ADMIN
权限。
Parameters
serviceUuids
UUID
: Array of services to look for
callback
BluetoothAdapter.LeScanCallback
: the callback LE scan results are delivered
boolean startLeScan (
BluetoothAdapter.LeScanCallback
callback)
此方法在API级别21中已弃用。
改为使用
startScan(List, ScanSettings, ScanCallback)
。
开始扫描蓝牙LE设备。
使用
onLeScan(BluetoothDevice, int, byte[])
回调报告扫描结果。
需要
BLUETOOTH_ADMIN
权限。
Parameters
callback
BluetoothAdapter.LeScanCallback
: the callback LE scan results are delivered
void stopLeScan (
BluetoothAdapter.LeScanCallback
callback)
此方法在API级别21中已弃用。
改为使用
stopScan(ScanCallback)
。
停止正在进行的蓝牙LE设备扫描。
需要
BLUETOOTH_ADMIN
权限。
Parameters
callback
BluetoothAdapter.LeScanCallback
: used to identify which scan to stop must be the same handle used to start the scan
void finalize ()
当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。
子类重写
finalize
方法以处置系统资源或执行其他清理。
的常规协定
finalize
是,它被调用,如果当在Java
TM
虚拟机已确定不再有由该目的可以通过还没有死亡,除了作为一个动作的结果的任何线程访问的任何手段取决于某些其他可以完成的对象或类别的最终定稿。
方法
finalize
可以采取任何行动,包括使这个对象再次可用于其他线程;
但是,
finalize
的通常目的是在对象被不可撤销地丢弃之前执行清理操作。
例如,表示输入/输出连接的对象的finalize方法可能会执行显式I / O事务,以在永久丢弃该对象之前中断连接。
类
finalize
方法
Object
执行特殊的操作;
它只是正常返回。
Object
子类可能会覆盖此定义。
Java编程语言不保证哪个线程将为任何给定的对象调用
finalize
方法。
但是,保证调用finalize的线程在调用finalize时不会保留任何用户可见的同步锁。
如果finalize方法引发未捕获的异常,则忽略该异常,并终止该对象的终止。
在针对某个对象调用
finalize
方法之后,在Java虚拟机再次确定不再有任何方法可以通过尚未死亡的任何线程访问此对象之前,不会采取进一步的操作,包括可能的操作通过准备完成的其他对象或类别,此时该对象可能被丢弃。
对于任何给定的对象,Java虚拟机永远不会多次调用
finalize
方法。
finalize
方法引发的任何异常
finalize
导致此对象的终止被暂停,但会被忽略。
Throws
Throwable