Android上藍牙通信功能開發(fā)
1. 概述
本文引用地址:http://m.butianyuan.cn/article/154455.htmBluetooth 是幾乎現(xiàn)在每部手機標準配備的功能,多用于耳機 mic 等設備與手機的連接,除此之外,還可以多部手機之間建立 bluetooth 通信,本文就通過 SDK 中帶的一個聊天室的例程,來介紹一下 Android 上的 Bluetooth 的開發(fā)。
在 Android1.x 的時候,相關(guān) API 非常不完善,還不能簡單的使用 Bluetooth 開發(fā),有一個開源項目可以幫助程序員使用、開發(fā)藍牙,支持直接方法bluetooth 協(xié)議棧。在 Android2 以后,框架提供了一些官方 API 來進行藍牙的通信,但目前的程序也比較不完善。本文主要討論 Android2 后的Bluetooth 通信的 API 使用方法。
首先看聊天室的效果圖:
2. Bluetooth 通信 API 介紹2.1. Bluetooth 通信過程
2.2. Bluetooth API 的主要方法
BluetoothAdapter 類
BluetoothAdapter.getDefaultAdapter() :得到本地默認的 BluetoothAdapter ,若返回為 null 則表示本地不支持藍牙;
isDiscovering() :返回設備是否正在發(fā)現(xiàn)周圍藍牙設備;
cancelDiscovery() :取消正在發(fā)現(xiàn)遠程藍牙設備的過程;
startDiscovery() :開始發(fā)現(xiàn)過程;
getScanMode() :得到本地藍牙設備的 Scan Mode ;
getBondedDevices() :得到已配對的設備;
isEnabled() :藍牙功能是否啟用。
當發(fā)現(xiàn)藍牙功能未啟用時,如下調(diào)用設置啟用藍牙:
if (! mBluetoothAdapter .isEnabled()) {
Intent enableIntent = new Intent(BluetoothAdapter. ACTION_REQUEST_ENABLE );
startActivityForResult(enableIntent, REQUEST_ENABLE_BT );
}
復制代碼
如果發(fā)現(xiàn)當前設備沒有打開對外可見模式,則傳遞 Intent 來調(diào)用打開可發(fā)現(xiàn)模式,代碼如下:
Intent discoverableIntent = new Intent(BluetoothAdapter. ACTION_REQUEST_DISCOVERABLE ); discoverableIntent.putExtra(BluetoothAdapter. EXTRA_DISCOVERABLE_DURATION , 300);
startActivity(discoverableIntent);
復制代碼
BluetoothDevice 類,此為對應的遠程藍牙 Device
createRfcommSocketToServiceRecord() :創(chuàng)建該 Device 的 socket 。
BluetoothSocket 類
connect() :請求連接藍牙。
getInputStream() :得到輸入流,用于接收遠程方信息。
getOutputStream() :得到輸出流,發(fā)送給遠程方的信息。
close() :關(guān)閉藍牙連接。
InputStream 類:
read(byte[]) :以阻塞方式讀取輸入流。
OutputStream 類:
write(byte[]) :將信息寫入該輸出流,發(fā)送給遠程。
數(shù)字通信相關(guān)文章:數(shù)字通信原理
通信相關(guān)文章:通信原理
評論