今天找了一下 關於 Bluetooth 的標準 Service/Profile 的 UUID ,但是看了一下 Specification Doucments 都只有 16bits 長,這是所謂的U
UID16格式
後來才了解,原來Bluetooth 將UUID 的部份固定,只取16bits 作為各種 Service 的區分,這樣可以節省分析 SDP Record and 與程式空間,避免增加 Bluetooth Device 的成本。
地下的值可以從 windows XP or Server 2003 SDK 的 bt_sdp.h or BlueZ 的 sdp.h(UUID16) 中找到定義,可以觀察出 下列的固定序列除了替換 XXXX部份
'{0000xxxx-0000-1000-8000-00805F9B34FB}',而XXXX 部份就是 所謂的 UUID16 定義。
Protocols UUID http://www.bluetooth.org/assigned-numbers/sdp.htmBASE UUID 00000000-0000-1000-8000-00805F9B34FB
SDP_PROTOCOL_UUID = '{00000001-0000-1000-8000-00805F9B34FB}'; UDP_PROTOCOL_UUID = '{00000002-0000-1000-8000-00805F9B34FB}'; RFCOMM_PROTOCOL_UUID = '{00000003-0000-1000-8000-00805F9B34FB}'; TCP_PROTOCOL_UUID = '{00000004-0000-1000-8000-00805F9B34FB}'; TCSBIN_PROTOCOL_UUID = '{00000005-0000-1000-8000-00805F9B34FB}'; TCSAT_PROTOCOL_UUID = '{00000006-0000-1000-8000-00805F9B34FB}'; OBEX_PROTOCOL_UUID = '{00000008-0000-1000-8000-00805F9B34FB}'; IP_PROTOCOL_UUID = '{00000009-0000-1000-8000-00805F9B34FB}'; FTP_PROTOCOL_UUID = '{0000000A-0000-1000-8000-00805F9B34FB}'; HTTP_PROTOCOL_UUID = '{0000000C-0000-1000-8000-00805F9B34FB}'; WSP_PROTOCOL_UUID = '{0000000E-0000-1000-8000-00805F9B34FB}'; BNEP_PROTOCOL_UUID = '{0000000F-0000-1000-8000-00805F9B34FB}'; UPNP_PROTOCOL_UUID = '{00000010-0000-1000-8000-00805F9B34FB}'; HID_PROTOCOL_UUID = '{00000011-0000-1000-8000-00805F9B34FB}'; HCCC_PROTOCOL_UUID = '{00000012-0000-1000-8000-00805F9B34FB}'; HCDC_PROTOCOL_UUID = '{00000014-0000-1000-8000-00805F9B34FB}'; HN_PROTOCOL_UUID = '{00000016-0000-1000-8000-00805F9B34FB}'; AVCTP_PROTOCOL_UUID = '{00000017-0000-1000-8000-00805F9B34FB}'; AVDTP_PROTOCOL_UUID = '{00000019-0000-1000-8000-00805F9B34FB}'; CMPT_PROTOCOL_UUID = '{0000001B-0000-1000-8000-00805F9B34FB}'; UDI_C_PLANE_PROTOCOL_UUID = '{0000001D-0000-1000-8000-00805F9B34FB}'; L2CAP_PROTOCOL_UUID = '{00000100-0000-1000-8000-00805F9B34FB}';
Ref. Service class IDs http://www.bluetooth.org/assigned-numbers/sdp.htm