Android上藍牙通信功能開(kāi)發(fā)
1. 概述
本文引用地址:http://dyxdggzs.com/article/154455.htmBluetooth 是幾乎現在每部手機標準配備的功能,多用于耳機 mic 等設備與手機的連接,除此之外,還可以多部手機之間建立 bluetooth 通信,本文就通過(guò) SDK 中帶的一個(gè)聊天室的例程,來(lái)介紹一下 Android 上的 Bluetooth 的開(kāi)發(fā)。
在 Android1.x 的時(shí)候,相關(guān) API 非常不完善,還不能簡(jiǎn)單的使用 Bluetooth 開(kāi)發(fā),有一個(gè)開(kāi)源項目可以幫助程序員使用、開(kāi)發(fā)藍牙,支持直接方法bluetooth 協(xié)議棧。在 Android2 以后,框架提供了一些官方 API 來(lái)進(jìn)行藍牙的通信,但目前的程序也比較不完善。本文主要討論 Android2 后的Bluetooth 通信的 API 使用方法。
首先看聊天室的效果圖:

2. Bluetooth 通信 API 介紹2.1. Bluetooth 通信過(guò)程

2.2. Bluetooth API 的主要方法
BluetoothAdapter 類(lèi)
BluetoothAdapter.getDefaultAdapter() :得到本地默認的 BluetoothAdapter ,若返回為 null 則表示本地不支持藍牙;
isDiscovering() :返回設備是否正在發(fā)現周?chē){牙設備;
cancelDiscovery() :取消正在發(fā)現遠程藍牙設備的過(guò)程;
startDiscovery() :開(kāi)始發(fā)現過(guò)程;
getScanMode() :得到本地藍牙設備的 Scan Mode ;
getBondedDevices() :得到已配對的設備;
isEnabled() :藍牙功能是否啟用。
當發(fā)現藍牙功能未啟用時(shí),如下調用設置啟用藍牙:
if (! mBluetoothAdapter .isEnabled()) {
Intent enableIntent = new Intent(BluetoothAdapter. ACTION_REQUEST_ENABLE );
startActivityForResult(enableIntent, REQUEST_ENABLE_BT );
}
復制代碼
如果發(fā)現當前設備沒(méi)有打開(kāi)對外可見(jiàn)模式,則傳遞 Intent 來(lái)調用打開(kāi)可發(fā)現模式,代碼如下:
Intent discoverableIntent = new Intent(BluetoothAdapter. ACTION_REQUEST_DISCOVERABLE ); discoverableIntent.putExtra(BluetoothAdapter. EXTRA_DISCOVERABLE_DURATION , 300);
startActivity(discoverableIntent);
復制代碼
BluetoothDevice 類(lèi),此為對應的遠程藍牙 Device
createRfcommSocketToServiceRecord() :創(chuàng )建該 Device 的 socket 。
BluetoothSocket 類(lèi)
connect() :請求連接藍牙。
getInputStream() :得到輸入流,用于接收遠程方信息。
getOutputStream() :得到輸出流,發(fā)送給遠程方的信息。
close() :關(guān)閉藍牙連接。
InputStream 類(lèi):
read(byte[]) :以阻塞方式讀取輸入流。
OutputStream 類(lèi):
write(byte[]) :將信息寫(xiě)入該輸出流,發(fā)送給遠程。
數字通信相關(guān)文章:數字通信原理
通信相關(guān)文章:通信原理
評論