搜索和连接¶
内置的界面¶
为了更加方便快速的帮助开发串口通信应用程序,我们内部集成了一个必备的搜索和连接页面,使用方法 openDiscoveryActivity()
打开一个内置的界面:
serialPort.openDiscoveryActivity()
使用自定义的界面¶
当然了,在更多的情况我们的搜索和连接页面需要更加的美观和定制化。那么,可以使用方法 serialPort.openDiscoveryActivity(intent)
打开一个你自定义的页面:
//这里修改为你自定义的Activity即可
val intent = Intent(this,DiscoveryActivity::class.java)
serialPort.openDiscoveryActivity(intent)
搜索设备¶
搜索状态的监听¶
使用方法 setDiscoveryStatusWithTypeCallback(discoveryStatusWithTypeCallback)
或者 setDiscoveryStatusCallback(discoveryStatusCallback)
设置一个搜索状态监听器:
//status 为搜索状态
serialPort.setDiscoveryStatusCallback{ status ->
}
//搜索状态带类型的监听
//deviceType = SerialPort.DISCOVERY_BLE 搜索BLE设备
//deviceType = SerialPort.DISCOVERY_LEGACY 搜索传统类型
//status 为搜索状态
serialPort.setDiscoveryStatusWithTypeCallback { deviceType, status ->
}
除此之外,你还可以在构建实例时配置监听器:
//status 为搜索状态
val serialPort = SerialPortBuilder
.setDiscoveryStatusCallback { status ->
}
.build(this)
//搜索状态带类型的监听
//deviceType = SerialPort.DISCOVERY_BLE 搜索BLE设备
//deviceType = SerialPort.DISCOVERY_LEGACY 搜索传统类型
//status 为搜索状态
val serialPort = SerialPortBuilder
.setDiscoveryStatusWithTypeCallback { deviceType, status ->
}
.build(this)
获取搜索结果¶
使用方法 getPairedDevicesListBD()
和 getUnPairedDevicesListBD()
获取搜索结果:
serialPort.getPairedDevicesListBD() //获取已配对设备列表
serialPort.getUnPairedDevicesListBD() //获取未配对设备列表
如果搜索未结束,则可能获取的未配对设备列表为空或者不全。
连接设备¶
想要成功的连接设备,并且完成通信,设置正确的UUID是必不可少的一步。
传统设备¶
设置UUID¶
使用 SerialPort
的静态方法 setLegacyUUID(uuid)
设置传统设备的UUID:
SerialPort.setLegacyUUID("00001101-0000-1000-8000-00805F9B34FB")
传统设备一般情况下,可以不用设置UUID,使用默认的即可。
建立连接¶
使用方法 connectLegacyDevice(address)
与传统设备建立连接:
serialPort.connectLegacyDevice("98:D3:32:21:67:D0")
BLE设备¶
设置UUID¶
使用 SerialPort
的静态方法 setBleUUID(uuid)
设置BLE设备的UUID, 或者使用setBleSendUUID
和 setBleReadUUID
分别独立设置发送和接收的UUID:
SerialPort.setBleUUID("0000ffe1-0000-1000-8000-00805f9b34fb")
SerialPort.setBleReadUUID("0000ffe1-0000-1000-8000-00805f9b34fb")
SerialPort.setBleSendUUID("0000ffe1-0000-1000-8000-00805f9b34fb")
如果独立设置了UUID,则以独立设置的为准。
BLE设备大多数情况下都需要设置UUID,具体的UUID可以查询手册或咨询卖家。
除此之外,也可以使用方法 printPossibleBleUUID()
打印出可行的UUID,详情见:打印uuid及其属性
连接状态的监听¶
使用方法 setConnectionStatusCallback(connectionStatusCallback)
设置一个连接状态的监听器:
serialPort.setConnectStatusCallback { status, bluetoothDevice ->
}
除此之外,你还可以在构建实例时配置监听器:
val serialPort = SerialPortBuilder
.setConnectionStatusCallback { status, bluetoothDevice ->
}
.build(this)
这里的 bluetoothDevice
使用的时官方的类,其包含了蓝牙的设备的各种信息。详见官方文档
在之前版本使用的是自定义的 Device
类(不建议使用),其包含了:设备名、设备地址、设备类型。其实现如下:
@Deprecated("该类在4.0.0版本被弃用,将直接使用官方的BluetoothDevice类代替")
data class Device(
val name:String,
val address:String,
val type:Int = 0
)
BLE 可以工作回调¶
该回调在BLE设备连接成功,并且可以工作之后触发,可用于配置连接成功后自动发送消息。使用方法如下:
serialPort.setBleCanWorkCallback {
}
除此之外,你还可以在构建实例时配置监听器:
val serialPort = SerialPortBuilder
.setBleCanWorkCallback {
}
.build(this)