BluetoothAdapter类简单来说代表了本设备(手机、电脑等)的蓝牙适配器对象,通过它可以操作蓝牙设备,主要有如下功能:(1)开关蓝牙设备;(2)扫描蓝牙设备;(3)设置/获取蓝牙状态信息,例如蓝牙状态值、蓝牙Name、蓝牙Mac地址等。
蓝牙操作的步骤如下。
(1)获得蓝牙适配器实例,代码如下。
如果设备具备蓝牙功能,则返回BluetoothAdapter实例;否则,返回Null对象。
例如:BluetoothAdapter mBluetoothAdapter=BluetoothAdapter.getDefaultAdapter()
(2)打开蓝牙。
直接调用BluetoothAdapter类成员函数enable()打开蓝牙设备。
系统API打开蓝牙设备,该方式会弹出一个对话框样式的Activity,供用户选择是否打开蓝牙设备。需要注意的是如果蓝牙已经开启,不会弹出该Activity界面。
例如:
(3)关闭蓝牙。
直接调用BluetoothAdapter类函数即disable()即可。该函数若返回True,表示关闭操作成功;返回False,表示蓝牙操作失败。
(4)扫描蓝牙设备。
直接调用BluetoothAdapter类函数即startDiscovery()即可,返回值为Boolean,需要注意的是,如果蓝牙没有开启,该方法会返回False,即不会开始扫描过程。
要获得此搜索的结果需要先注册,以获取一个BroadcastReceiver。先注册再获取信息,然后进行处理,代码如下。
(5)获取蓝牙相关信息。
public String getName()用于获取蓝牙设备名称。(www.xing528.com)
public String getAddress()用于获取蓝牙设备的硬件地址(MAC地址),例如:00:11:22:AA:BB:CC。
public String getScanMode()用于获取蓝牙设备的扫描模式。
public static boolean checkBluetoothAddress(String address)用于验证蓝牙设备MAC地址是否有效。所有设备地址的英文字母必须大写,且为48位,例如00:43:A8:23:10:F1。
返回值为True,表示设备地址有效;返回值为False,表示设备地址无效。
例如:btDesc.setText("Name:"+mBluetoothAdapter.getName()+"Address:"+mBluetoothAdapter.getAddress()+"ScanMode--"+mBluetoothAdapter.getScanMode())。
(6)获取与本机绑定的蓝牙信息,代码如下。
public Set<BluetoothDevice>getBondedDevices()
获取与本机蓝牙所有绑定的远程蓝牙信息,以BluetoothDevice类实例返回。如果蓝牙为开启状态,该函数会返回一个空集合。
BluetoothDevice对象代表一个远程的蓝牙设备,通过这个类可以查询远程设备的物理地址、名称、连接状态等信息。
例如,通过BluetoothAdapter类对象的getBondedDevices()获取连接的蓝牙设备集合,然后加入到List数组,代码如下。
(7)获取给定蓝牙地址的设备,代码如下。
public BluetoothDevice getRemoteDevice(String address)
该段代码以给定的MAC地址创建一个BluetoothDevice类实例(代表远程蓝牙实例)。返回BluetoothDevice类实例。需要注意的是,如果该蓝牙设备MAC地址不能被识别,其蓝牙Name为null。
(8)在项目配置文件app/src/AndroidManifest.xml中添加相应权限。
需要开启定位权限才能搜索到附近的蓝牙设备,代码如下。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。