蓝牙RFCOMM数据(SPP 串口)通信
来看看在蓝牙中为啥会用到UUID。
在蓝牙协议中,UUID被用来标识蓝牙设备所提供的服务,并非是标识蓝牙设备本身哦,一个蓝牙设备可以提供多种服务,比如A2DP(蓝牙音频传输)、HEADFREE(免提)、PBAP(电话本)、SPP(串口通信)等等,每种服务都对应一个UUID,其中在蓝牙协议栈里,这些默认提供的profile是都有对应的UUID的,也就是默认的UUID,比如SPP
,00001101-0000-1000-8000-00805F9B34FB
就是一个非常著名的UUID,基本上所有的蓝牙板不修改的话都是这个值,所以,如果是与一个蓝牙开发板进行串口通信,而蓝牙侧又不是自己可以控制的,就可以试试这个值。
当然,我们进行串口通信的开发,一般都会自己同时开发两侧,因为串口传递的数据就是数据流,没有格式之说,具体发送的数据的意义需要自己来定义,就是说自己定义规则,这就要求一端发送的数据,另一端可以理解。两者的通信基于socket进行实现,所以必须有一端做服务端,另一端做客户端。
再来说下,android里进行蓝牙串口通信的接口,以android端作为客户端为例,也就是对方蓝牙设备作为server端,等着android端来连接。
那么android端需要通过
public BluetoothSocket createRfcommSocketToServiceRecord (UUID uuid) |
---|
这个接口创建一个socket,通过这个socket来进行connect()连接,而uuid就类型用来指定socket对应的端口
而server端必须也有在这个UUID上创建好server端socket上监听才可以成功连接上,两者用的UUID必须一样才可以。
所以UUID的用处就在这里。
这是一些常用的uuud说明
ample Services
0000180d-0000-1000-8000-00805f9b34fb Heart Rate Service\
0000180a-0000-1000-8000-00805f9b34fb Device Information Service\
Sample Characteristics.
00002a37-0000-1000-8000-00805f9b34fb Heart Rate Measurement\
00002a29-0000-1000-8000-00805f9b34fb Manufacturer Name String
GATT Services
00001800-0000-1000-8000-00805f9b34fb GenericAccess\
00001801-0000-1000-8000-00805f9b34fb GenericAttribute
GATT Declarations
00002800-0000-1000-8000-00805f9b34fb Primary Service\
00002801-0000-1000-8000-00805f9b34fb Secondary Service\
00002802-0000-1000-8000-00805f9b34fb Include\
00002803-0000-1000-8000-00805f9b34fb Characteristic
GATT Descriptors
00002900-0000-1000-8000-00805f9b34fb Characteristic Extended Properties\
00002901-0000-1000-8000-00805f9b34fb Characteristic User Description\
00002902-0000-1000-8000-00805f9b34fb Client Characteristic Configuration\
00002903-0000-1000-8000-00805f9b34fb Server Characteristic Configuration\
00002904-0000-1000-8000-00805f9b34fb Characteristic Presentation Format\
00002905-0000-1000-8000-00805f9b34fb Characteristic Aggregate Format\
00002906-0000-1000-8000-00805f9b34fb Valid Range\
00002907-0000-1000-8000-00805f9b34fb External Report Reference Descriptor\
00002908-0000-1000-8000-00805f9b34fb Report Reference Descriptor
GATT Characteristics
00002a00-0000-1000-8000-00805f9b34fb Device Name\
00002a01-0000-1000-8000-00805f9b34fb Appearance\
00002a02-0000-1000-8000-00805f9b34fb Peripheral Privacy Flag\
00002a03-0000-1000-8000-00805f9b34fb Reconnection Address\
00002a04-0000-1000-8000-00805f9b34fb PPCP\
00002a05-0000-1000-8000-00805f9b34fb Service Changed
GATT Service UUIDs
00001802-0000-1000-8000-00805f9b34fb Immediate Alert\
00001803-0000-1000-8000-00805f9b34fb Link Loss\
00001804-0000-1000-8000-00805f9b34fb Tx Power\
00001805-0000-1000-8000-00805f9b34fb Current Time Service\
00001806-0000-1000-8000-00805f9b34fb Reference Time Update Service\
00001807-0000-1000-8000-00805f9b34fb Next DST Change Service\
00001808-0000-1000-8000-00805f9b34fb Glucose\
00001809-0000-1000-8000-00805f9b34fb Health Thermometer\
0000180a-0000-1000-8000-00805f9b34fb Device Information\
0000180b-0000-1000-8000-00805f9b34fb Network Availability\
0000180d-0000-1000-8000-00805f9b34fb Heart Rate\
0000180e-0000-1000-8000-00805f9b34fb Phone Alert Status Service\
0000180f-0000-1000-8000-00805f9b34fb Battery Service\
00001810-0000-1000-8000-00805f9b34fb Blood Pressure\
00001811-0000-1000-8000-00805f9b34fb Alert Notification Service\
00001812-0000-1000-8000-00805f9b34fb Human Interface Device\
00001813-0000-1000-8000-00805f9b34fb Scan Parameters\
00001814-0000-1000-8000-00805f9b34fb Running Speed and Cadence\
00001816-0000-1000-8000-00805f9b34fb Cycling Speed and Cadence\
00001818-0000-1000-8000-00805f9b34fb Cycling Power\
00001819-0000-1000-8000-00805f9b34fb Location and Navigation
GATT Characteristic UUIDs
00002a06-0000-1000-8000-00805f9b34fb Alert Level\
00002a07-0000-1000-8000-00805f9b34fb Tx Power Level\
00002a08-0000-1000-8000-00805f9b34fb Date Time\
00002a09-0000-1000-8000-00805f9b34fb Day of Week\
00002a0a-0000-1000-8000-00805f9b34fb Day Date Time\
00002a0c-0000-1000-8000-00805f9b34fb Exact Time 256\
00002a0d-0000-1000-8000-00805f9b34fb DST Offset\
00002a0e-0000-1000-8000-00805f9b34fb Time Zone\
00002a0f-0000-1000-8000-00805f9b34fb Local Time Information\
00002a11-0000-1000-8000-00805f9b34fb Time with DST\
00002a12-0000-1000-8000-00805f9b34fb Time Accuracy\
00002a13-0000-1000-8000-00805f9b34fb Time Source\
00002a14-0000-1000-8000-00805f9b34fb Reference Time Information\
00002a16-0000-1000-8000-00805f9b34fb Time Update Control Point\
00002a17-0000-1000-8000-00805f9b34fb Time Update State\
00002a18-0000-1000-8000-00805f9b34fb Glucose Measurement\
00002a19-0000-1000-8000-00805f9b34fb Battery Level\
00002a1c-0000-1000-8000-00805f9b34fb Temperature Measurement\
00002a1d-0000-1000-8000-00805f9b34fb Temperature Type\
00002a1e-0000-1000-8000-00805f9b34fb Intermediate Temperature\
00002a21-0000-1000-8000-00805f9b34fb Measurement Interval\
00002a22-0000-1000-8000-00805f9b34fb Boot Keyboard Input Report\
00002a23-0000-1000-8000-00805f9b34fb System ID\
00002a24-0000-1000-8000-00805f9b34fb Model Number String\
00002a25-0000-1000-8000-00805f9b34fb Serial Number String\
00002a26-0000-1000-8000-00805f9b34fb Firmware Revision String\
00002a27-0000-1000-8000-00805f9b34fb Hardware Revision String\
00002a28-0000-1000-8000-00805f9b34fb Software Revision String\
00002a29-0000-1000-8000-00805f9b34fb Manufacturer Name String\
00002a2a-0000-1000-8000-00805f9b34fb IEEE 11073-20601 Regulatory Certification Data List\
00002a2b-0000-1000-8000-00805f9b34fb Current Time\
00002a31-0000-1000-8000-00805f9b34fb Scan Refresh\
00002a32-0000-1000-8000-00805f9b34fb Boot Keyboard Output Report\
00002a33-0000-1000-8000-00805f9b34fb Boot Mouse Input Report\
00002a34-0000-1000-8000-00805f9b34fb Glucose Measurement Context\
00002a35-0000-1000-8000-00805f9b34fb Blood Pressure Measurement\
00002a36-0000-1000-8000-00805f9b34fb Intermediate Cuff Pressure\
00002a37-0000-1000-8000-00805f9b34fb Heart Rate Measurement\
00002a38-0000-1000-8000-00805f9b34fb Body Sensor Location\
00002a39-0000-1000-8000-00805f9b34fb Heart Rate Control Point\
00002a3e-0000-1000-8000-00805f9b34fb Network Availability\
00002a3f-0000-1000-8000-00805f9b34fb Alert Status\
00002a40-0000-1000-8000-00805f9b34fb Ringer Control Point\
00002a41-0000-1000-8000-00805f9b34fb Ringer Setting\
00002a42-0000-1000-8000-00805f9b34fb Alert Category ID Bit Mask\
00002a43-0000-1000-8000-00805f9b34fb Alert Category ID\
00002a44-0000-1000-8000-00805f9b34fb Alert Notification Control Point\
00002a45-0000-1000-8000-00805f9b34fb Unread Alert Status\
00002a46-0000-1000-8000-00805f9b34fb New Alert\
00002a47-0000-1000-8000-00805f9b34fb Supported New Alert Category\
00002a48-0000-1000-8000-00805f9b34fb Supported Unread Alert Category\
00002a49-0000-1000-8000-00805f9b34fb Blood Pressure Feature\
00002a4a-0000-1000-8000-00805f9b34fb HID Information\
00002a4b-0000-1000-8000-00805f9b34fb Report Map\
00002a4c-0000-1000-8000-00805f9b34fb HID Control Point\
00002a4d-0000-1000-8000-00805f9b34fb Report\
00002a4e-0000-1000-8000-00805f9b34fb Protocol Mode\
00002a4f-0000-1000-8000-00805f9b34fb Scan Interval Window\
00002a50-0000-1000-8000-00805f9b34fb PnP ID\
00002a51-0000-1000-8000-00805f9b34fb Glucose Feature\
00002a52-0000-1000-8000-00805f9b34fb Record Access Control Point\
00002a53-0000-1000-8000-00805f9b34fb RSC Measurement\
00002a54-0000-1000-8000-00805f9b34fb RSC Feature\
00002a55-0000-1000-8000-00805f9b34fb SC Control Point\
00002a5b-0000-1000-8000-00805f9b34fb CSC Measurement\
00002a5c-0000-1000-8000-00805f9b34fb CSC Feature\
00002a5d-0000-1000-8000-00805f9b34fb Sensor Location\
00002a63-0000-1000-8000-00805f9b34fb Cycling Power Measurement\
00002a64-0000-1000-8000-00805f9b34fb Cycling Power Vector\
00002a65-0000-1000-8000-00805f9b34fb Cycling Power Feature\
00002a66-0000-1000-8000-00805f9b34fb Cycling Power Control Point\
00002a67-0000-1000-8000-00805f9b34fb Location and Speed\
00002a68-0000-1000-8000-00805f9b34fb Navigation\
00002a69-0000-1000-8000-00805f9b34fb Position Quality\
00002a6a-0000-1000-8000-00805f9b34fb LN Feature\
00002a6b-0000-1000-8000-00805f9b34fb LN Control Point");
ServiceDiscoveryServerServiceClassID_UUID = '{00001000-0000-1000-8000-00805F9B34FB}'
BrowseGroupDescriptorServiceClassID_UUID = '{00001001-0000-1000-8000-00805F9B34FB}'
PublicBrowseGroupServiceClass_UUID = '{00001002-0000-1000-8000-00805F9B34FB}'
#蓝牙串口服务
SerialPortServiceClass_UUID = '{00001101-0000-1000-8000-00805F9B34FB}'
LANAccessUsingPPPServiceClass_UUID = '{00001102-0000-1000-8000-00805F9B34FB}'
#拨号网络服务
DialupNetworkingServiceClass_UUID = '{00001103-0000-1000-8000-00805F9B34FB}'
#信息同步服务
IrMCSyncServiceClass_UUID = '{00001104-0000-1000-8000-00805F9B34FB}'
SDP_OBEXObjectPushServiceClass_UUID = '{00001105-0000-1000-8000-00805F9B34FB}'
#文件传输服务
OBEXFileTransferServiceClass_UUID = '{00001106-0000-1000-8000-00805F9B34FB}'
IrMCSyncCommandServiceClass_UUID = '{00001107-0000-1000-8000-00805F9B34FB}'
SDP_HeadsetServiceClass_UUID = '{00001108-0000-1000-8000-00805F9B34FB}'
CordlessTelephonyServiceClass_UUID = '{00001109-0000-1000-8000-00805F9B34FB}'
SDP_AudioSourceServiceClass_UUID = '{0000110A-0000-1000-8000-00805F9B34FB}'
SDP_AudioSinkServiceClass_UUID = '{0000110B-0000-1000-8000-00805F9B34FB}'
SDP_AVRemoteControlTargetServiceClass_UUID = '{0000110C-0000-1000-8000-00805F9B34FB}'
SDP_AdvancedAudioDistributionServiceClass_UUID = '{0000110D-0000-1000-8000-00805F9B34FB}'
SDP_AVRemoteControlServiceClass_UUID = '{0000110E-0000-1000-8000-00805F9B34FB}'
VideoConferencingServiceClass_UUID = '{0000110F-0000-1000-8000-00805F9B34FB}'
IntercomServiceClass_UUID = '{00001110-0000-1000-8000-00805F9B34FB}'
#蓝牙传真服务
FaxServiceClass_UUID = '{00001111-0000-1000-8000-00805F9B34FB}'
HeadsetAudioGatewayServiceClass_UUID = '{00001112-0000-1000-8000-00805F9B34FB}'
WAPServiceClass_UUID = '{00001113-0000-1000-8000-00805F9B34FB}'
WAPClientServiceClass_UUID = '{00001114-0000-1000-8000-00805F9B34FB}'
#个人局域网服务
PANUServiceClass_UUID = '{00001115-0000-1000-8000-00805F9B34FB}'
#个人局域网服务
NAPServiceClass_UUID = '{00001116-0000-1000-8000-00805F9B34FB}'
#个人局域网服务
GNServiceClass_UUID = '{00001117-0000-1000-8000-00805F9B34FB}'
DirectPrintingServiceClass_UUID = '{00001118-0000-1000-8000-00805F9B34FB}'
ReferencePrintingServiceClass_UUID = '{00001119-0000-1000-8000-00805F9B34FB}'
ImagingServiceClass_UUID = '{0000111A-0000-1000-8000-00805F9B34FB}'
ImagingResponderServiceClass_UUID = '{0000111B-0000-1000-8000-00805F9B34FB}'
ImagingAutomaticArchiveServiceClass_UUID = '{0000111C-0000-1000-8000-00805F9B34FB}'
ImagingReferenceObjectsServiceClass_UUID = '{0000111D-0000-1000-8000-00805F9B34FB}'
SDP_HandsfreeServiceClass_UUID = '{0000111E-0000-1000-8000-00805F9B34FB}'
HandsfreeAudioGatewayServiceClass_UUID = '{0000111F-0000-1000-8000-00805F9B34FB}'
DirectPrintingReferenceObjectsServiceClass_UUID = '{00001120-0000-1000-8000-00805F9B34FB}'
ReflectedUIServiceClass_UUID = '{00001121-0000-1000-8000-00805F9B34FB}'
BasicPringingServiceClass_UUID = '{00001122-0000-1000-8000-00805F9B34FB}'
PrintingStatusServiceClass_UUID = '{00001123-0000-1000-8000-00805F9B34FB}'
#人机输入服务
HumanInterfaceDeviceServiceClass_UUID = '{00001124-0000-1000-8000-00805F9B34FB}'
HardcopyCableReplacementServiceClass_UUID = '{00001125-0000-1000-8000-00805F9B34FB}'
#蓝牙打印服务
HCRPrintServiceClass_UUID = '{00001126-0000-1000-8000-00805F9B34FB}'
HCRScanServiceClass_UUID = '{00001127-0000-1000-8000-00805F9B34FB}'
CommonISDNAccessServiceClass_UUID = '{00001128-0000-1000-8000-00805F9B34FB}'
VideoConferencingGWServiceClass_UUID = '{00001129-0000-1000-8000-00805F9B34FB}'
UDIMTServiceClass_UUID = '{0000112A-0000-1000-8000-00805F9B34FB}'
UDITAServiceClass_UUID = '{0000112B-0000-1000-8000-00805F9B34FB}'
AudioVideoServiceClass_UUID = '{0000112C-0000-1000-8000-00805F9B34FB}'
SIMAccessServiceClass_UUID = '{0000112D-0000-1000-8000-00805F9B34FB}'
PnPInformationServiceClass_UUID = '{00001200-0000-1000-8000-00805F9B34FB}'
GenericNetworkingServiceClass_UUID = '{00001201-0000-1000-8000-00805F9B34FB}'
GenericFileTransferServiceClass_UUID = '{00001202-0000-1000-8000-00805F9B34FB}'
GenericAudioServiceClass_UUID = '{00001203-0000-1000-8000-00805F9B34FB}'
GenericTelephonyServiceClass_UUID = '{00001204-0000-1000-8000-00805F9B34FB}'
评论区