藍牙是一種短距離的無線通信技術标準。
藍牙協定分為4層,即核心協定層,電纜替代協定層,電話控制協定層,和 采納的其它協定層。
這4中協定中最重要的是核心協定。藍牙的核心協定包括基帶,鍊路管理,邏輯鍊路控制和适應協定四部分。其中鍊路管理(LMP)負責藍牙元件間連接配接的建立。邏輯鍊路控制與适應協定(L2CAP)位于基帶協定層上,屬于資料鍊路層,是一個為高層傳輸和應用層協定屏蔽基帶協定的适配協定。
方式一:
第二種方式:
1,搜尋普通藍牙裝置
2,搜尋BLE裝置
通過藍牙傳輸資料與Socket類似。在網絡中使用Socket和ServerSocket控制用戶端和服務端的資料讀寫。而藍牙通訊也由用戶端和服務端Socket來完成。藍牙用戶端Socket是BluetoothSocket,藍牙服務端Socket是BluetoothServerSocket。這兩個類都在android.bluetooth包中。
無論是BluetoothSocket,還是BluetoothServerSocket,都需要一個UUID來辨別,格式如下:
此UUID是一個8-4-4-4-12的字元串。
UUID相當于Socket的端口,而藍牙位址相當于Socket的IP。
兩個藍牙裝置進行連接配接時,需要使用同一個UUID。一些時候,很多型号的手機(可能是安卓機和水果機)之間使用了不同的程式也可以使用藍牙進行通訊。表面上看,他們之間幾乎不肯能使用同一個UUID。
實際上,UUID和TCP的端口一樣,也有一些預設的值。例如,講藍牙模拟成序列槽的服務就使用了一個标準的UUID:00001101-0000-1000-8000-00805F9B34FB.除此之外,還有很多标準的UUID,比如:
資訊同步服務:00001104-0000-1000-8000-00805F9B34FB.
檔案傳輸服務:00001106-0000-1000-8000-00805F9B34FB。