【Android 应用开发】BluetoothSocket详解
一. BluetoothSocket簡介
1. 簡介
客戶端與服務端 :?
BluetoothSocket 和 BluetoothServerSocket 類似于Java中的套接字的 Socket 和 ServerSocket;
在服務器端和客戶端進行數據傳輸的時候都要使用這個類;
服務器端 : 使用BluetoothServerSocket對象可以創建一個BluetoothSocket對象, 調用BluetoothServerSocket的accept()方法就可以獲取該對象;
客戶端 : 調用BluetoothDevice的createRfcommSocketToServiceRecord()可以獲取該對象;?
在服務器端BluetoothServerSocket進行accept()阻塞, 在客戶端BluetoothSocket調用connect()連接服務器, 如果連接成功, 服務器端的accept()方法就會返回BluetoothSocket對象, 同時客戶端的BluetoothSocket也成功連接服務器, 此時服務器端和客戶端的BluetoothSocket對象就可以獲取輸入輸出流, 對數據進行操作;
常見的連接 : 最常見的BluetoothSocket連接是RFCOMM連接, 這是一個面向連接的數據交互, 先建立連接, 在進行數據交互, 類似于打電話.(面向連接對應無連接, 打電話時面向連接的; 網絡上發送數據是無連接的).
線程安全 : BluetoothSocket是線程安全的, close()方法會終止BluetoothSocket進行的一切操作, 并且同時會關閉連接;
二. API詳解
常用方法介紹 :?
(1)關閉連接
public void close ()作用 : 關閉這個套接字, 并且釋放該對象占用的所有的系統資源; 這個方法可以調用多次, 但是只有第一次會生效, 多次調用, 作用的對象都是一個對象;
(2)嘗試連接
public void connect ()作用 : 嘗試去連接一個遠程設備, 這個方法會一直阻塞, 知道連接成功或者失敗, 如果沒有出現異常就說明連接成功;
注意 : 執行這個方法的時候, 不能與藍牙掃描同時進行, 在執行該方法前, 要先停止藍牙掃描, 調用BluetoothAdapter的cancelDiscovery()方法;
(3)獲取輸入流
public InputStream getInputStream ()作用 : 獲取輸入流
(4)獲取輸出流
public OutputStream getOutputStream ()作用 : 獲取輸出流
(5)獲取遠程設備
public BluetoothDevice getRemoteDevice ()作用 : 如果BluetoothSocket處于連接中, 那么返回連接的遠程設備, 如果沒有連接, 那么返回null;
(6)是否連接
public boolean isConnected ()作用 : 獲取這個BluetoothSocket是否連接;
總結
以上是生活随笔為你收集整理的【Android 应用开发】BluetoothSocket详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 应用开发】Blueto
- 下一篇: 【Android 应用开发】Blueto