android 中文 api (72) —— BluetoothSocket[蓝牙]
前言
本章內容是 android.bluetooth.BluetoothSocket,為Android藍牙部分的章節翻譯。藍牙通訊套接字,代表了與遠端設備的連接點,使用socket本地程序可以通過inputstream和outputstream與遠端程序進行通訊。版本為 Android 2.3 r1,翻譯來自中山大學的"Android Club SYSU",歡迎訪問他們的WIKI:http://www.android-wiki.net,再次感謝"Android Club SYSU"!期待你一起參與Android API 的中文翻譯,聯系我 over140@gmail.com。
?
聲明
歡迎轉載,但請保留文章原始出處:)
Android Club SYSU:http://www.android-wiki.net
博客園:http://www.cnblogs.com/
Android中文翻譯組:http://code.taobao.org/project/view/404/
?
正文
一、結構
public final class?BluetoothSocket?extends?Object?implements?Parcelable
????????
java.lang.Object
android.bluetooth.BluetoothSocket
?二、概述
?????????已連接或連接到藍牙套接字(socket)。
?????????藍牙端口監聽接口和TCP端口類似:Socket和ServerSocket類。在服務器端,使用BluetoothServerSocket類來創建一個?監聽服務端口。當一個連接被BluetoothServerSocket所接受,它會返回一個新的BluetoothSocket來管理該連接。在客戶?端,使用一個單獨的BluetoothSocket類去初始化一個外接連接和管理該連接。
最通常使用的藍牙端口是RFCOMM,它是被Android API支持的類型。RFCOMM是一個面向連接,通過藍牙模塊進行的數據流傳輸方式,它也被稱為串行端口規范(Serial Port Profile,SPP)。
為了創建一個BluetoothSocket去連接到一個已知設備,使用方法?BluetoothDevice.createRfcommSocketToServiceRecord()。然后調用connect()方法去嘗試一個面向遠程設備的連接。這個調用將被阻塞指導一個連接已經建立或者該鏈接失效。
為了創建一個BluetoothSocket作為服務端(或者“主機”),查看BluetoothServerSocket文檔。
每當該端口連接成功,無論它初始化為客戶端,或者被接受作為服務器端,通過getInputStream()和getOutputStream()來打開IO流,從而獲得各自的InputStream和OutputStream對象
BluetoothSocket類線程安全。特別的,close()方法總會馬上放棄外界操作并關閉服務器端口。
注意:需要BLUETOOTH權限。
參見
?????????BluetoothServerSocket
????InputStream
? ???OutputStream
?三、公共方法
????public void?close?()
馬上關閉該端口并且釋放所有相關的資源。
在其它線程的該端口中引起阻塞,從而使系統馬上拋出一個IO異常。
異常
IOException
?
????public void?connect?()
嘗試連接到遠程設備。
該方法將阻塞,指導一個連接建立或者失效。如果該方法沒有返回異常值,則該端口現在已經建立。
當設備查找正在進行的時候,創建對遠程藍牙設備的新連接不可被嘗試。在藍牙適配器上,設備查找是一個重量級過程,并且肯定會降低一個設備的連接。使用cancelDiscovery()方法去取消一個外界的查詢。查詢并不由活動所管理,而作為一個系統服務來運行,所以即使它不能直接請求一個查詢,應用 程序也總會調用cancelDiscovery()方法。
close()方法可以用來放棄從另一線程而來的調用。
異常
IOException?????一個錯誤,例如連接失敗。
?
????public InputStream?getInputStream?()
通過連接的端口獲得輸入數據流
即使該端口未連接,該輸入數據流也會返回。不過在該數據流上的操作將拋出異常,直到相關的連接已經建立。
返回值
輸入流
異常
IOException
?
????public OutputStream?getOutputStream?()
通過連接的端口獲得輸出數據流
即使該端口未連接,該輸出數據流也會返回。不過在該數據流上的操作將拋出異常,直到相關的連接已經建立。
返回值
輸出流
異常
IOException
?
????public BluetoothDevice?getRemoteDevice?()
獲得該端口正在連接或者已經連接的遠程設備。
返回值
遠程設備?
四、補充
???? 文章精選
??? ?????第四十一講:Android藍牙編程入門
Android藍牙API之BluetoothSocket類Android藍牙API之BluetoothSocket類(2)
轉載:http://www.cnblogs.com/over140/archive/2010/12/22/1913353.html
總結
以上是生活随笔為你收集整理的android 中文 api (72) —— BluetoothSocket[蓝牙]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: npm下载安装教程_npm下载,安装和使
- 下一篇: 【小技巧】【牛客网】【JAVA】在线输入