一、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、面向库的架构视图

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规定的是一些一般性的运行任务。因此,它具有强制性,并作为所有其它蓝牙应用规范的基础。 补充一个蓝牙模块BF10的资料,可以使用Android 通过SPP协议去连接并形成透明串口进行数据传输。

更多相关文章

  1. Android(安卓)设备 USB 通用调试驱动的安装方法
  2. 获取Android设备信息
  3. Android蓝牙耳机录音
  4. Android_0.9 蓝牙栈bluez使用方法
  5. Develop--Training(七)Getting Started--支持不同的设备
  6. Android应用程序键盘(Keyboard)消息处理机制分析(7)
  7. Android(安卓)Studio基础:USB联调App
  8. 电脑导出文件到手机 adb push
  9. Doze和App Standby的优化(API23)

随机推荐

  1. 在Android(安卓)Studio 2.2上集成OpenCV
  2. github项目解析(五)-->android日志框架
  3. Android(安卓)Retrofit 2.0(一)初次见面请
  4. Android不完全退出主Activity的方法
  5. 10个 iOS 用户暂可以嘲笑 Android 的特点
  6. android高仿抖音、点餐界面、天气项目、
  7. Windows电脑:Android Studio 连接不上设备
  8. 2017年起至今的android各版本占比(持续更
  9. Android图表引擎aiCharts for Android v1
  10. Android之设置EditText输入类型(setInput