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