一、Android Bluetooth現狀
(1)Android2.2版 支援的藍牙核心版本是Bluetooth 2.0 +


EDR。

(2)Android 的藍牙 使用了BlueZ協定棧,但只實現了

Handset/Handfree和A2DP/AVRCP等Profile。

(一些常用的Profile(如HID/DUN/SPP/OPP/FTP/PAN等)在現

在的Android2.2版中並沒有實現。需要自己在Android中實現

Profile)。

(3)目前版本(Android2.2) 只支援 綁定設備(bonded


devices)之間通信,而不支援ad-hoc網路通信。

(4)目前版本(Android2.2) emulator(模擬器、模擬器)不

支援藍牙的調試,只能通過LOG和BlueZ帶的工具來調試。

(5)Android2.0 API level5 之後的版本才支援Bluetooth。

(6)Android 的Bluetooth通信API是BlueZ 的RFCOMM的封

裝。

RfcommSocket 在 API level7 之後的版本才提供Bluetooth 的通


RfcommSocket 使用JAVA 的IputStream 和OutputStream物件

二、Android Bluetooth 架構
1、面向庫的架構視圖

20110338_lnHi  


2、面向進程的架構視圖


LinuxKernel層:

bluez協定棧、uart驅動, h4協定, hci,l2cap, sco, rfcomm

Library層:

libbluedroid.so 等

Framework層:

實現了Headset /Handsfree 和 A2DP/AVRCP profile,但其實現

方式不同Handset/Handfree是直接 在bluez的RFCOMM Socket

上開發的,沒有利用bluez的audio Plugin,而A2DP/AVRCP是在

bluez的audio plugin基礎上開發的,大大降低了實現的難度。

三、 BlueZ介紹
(詳見HTTP://www.bluez.org/):

BlueZ 是linux OS開放的bluetooth 協定棧主要包括ibm公司的

BlueDrekar, Nokia公司的Affix, Axis公司的OpenBT和官方的協

議棧BlueZ.

Bluetooth協定棧BlueZ分為兩部分:內核代碼和使用者態程式及工具

集。

內核代碼:由BlueZ核心協定和驅動程式組 成;Bluetooth協定實

現在內核原始程式碼 /net/bluetooth中。包括

hci,l2cap,hid,rfcomm,sco,SDP,BNEP等協定的實現。驅動程

序放在 /driver/bluetooth中,包含Linux kernel對各種介面的

Bluetooth device的驅動。例如:USB介面,串口等。

使用者態程式及工具集:包括應用程式介面和BlueZ工具集。BlueZ提

供函式程式庫以及應用程式介面,便於程式師開發bluetooth應用程

序。BlueZ utils是主要工具集,實現對bluetooth設備的初始化和

控制。

四、幾個術語:
HFP(Hands-free Profile)耳機模式:

讓藍牙設備可以控制電話,如接聽、掛斷、拒接、語音撥號等,拒

接、語音撥號要視藍牙耳機及電話是否支援。

HSP(Handset Profile)耳機模式

用於支援藍牙耳機與行動電話之間使用

HID() 人機周邊設備設定檔

HID 設定檔定義了 Bluetooth HID(如鍵盤、指向設備、遊戲

設備及遠端監視設備)使用的協定、程式及功能

撥號網路設定檔 (DUN)

DUN 提供了通過 Bluetooth 無線技術接入 Internet 和其它撥號

服務的標準。最常見的情況是在手機上撥號,從膝上型電腦以無

線方式接入 Internet。

個人局域網設定檔 (PAN)

PAN 描述了兩個或更多個 Bluetooth 設備如何構成一個即時網

絡,以及如何使用同一機制通過網路存取點接入遠端網路。配置文

件角色包括網路存取點、組即時網路及個人局域網使用者。

SDP( Service Discovery Protocol )服務發現協定

提供應用程式在藍牙環境中發現哪個服務可用和決定那些可用服務

的特徵。

GAP(Generic Access Profile)通用訪問應用

一般訪問應用規範定義了藍牙設備如何發現和建立與其他設備的安

全(或不安全)連接。它處理一些一般模式的業務(如詢問、命名

和搜索)和一些安全性問 題(如擔保),同時還處理一些有關連接

的業務(如鏈路建立、通道和連接建立)。GAP規定的是一些一般

性的運行任務。因此,它具有強制性,並作為所有其它 藍牙應用規

范的基礎。


原文連結:HTTP://blog.csdn.net/zmyde2010/article/details/6619915
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()