一、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规定的是一些一般性的运行任务。因此,它具有强制性,并作为所有其它蓝牙应用规范的基础。
分享到:
相关推荐
《Unity3D蓝牙插件:Bluetooth LE for iOS and Android v2.3详解》 在现代移动设备开发中,蓝牙低功耗(Bluetooth Low Energy,简称BLE或Bluetooth LE)技术已经广泛应用,尤其在游戏和物联网应用中,它为设备间的...
### Android Bluetooth FTP协议知识点 #### 一、简介 蓝牙文件传输配置文件(File Transfer Profile,简称FTP)定义了蓝牙设备支持文件传输用例模型所需的要求。这些要求通过定义终端用户服务以及实现蓝牙设备间...
- android.permission.BLUETOOTH_ADMIN:允许应用进行蓝牙设备管理,例如开启或关闭蓝牙。 在代码中,可以通过BluetoothAdapter的getDefaultAdapter()方法获取本地蓝牙适配器对象,然后检查是否为null来判断设备...
在Android系统中,蓝牙(Bluetooth)模块是一个至关重要的部分,它允许设备进行无线通信,实现数据交换、设备配对和连接各种蓝牙设备,如耳机、键盘、健康追踪器等。本文档将对Android蓝牙模块的源码进行浅显易懂的...
Android 12 Settings Bluetooth 源码分析 基于 Android 12 的 Settings Bluetooth 源码分析是 Android 系统中一个重要的组件,负责管理蓝牙设备的连接和交互。下面是 Settings 部分的详细分析。 一、 Settings ...
标题 "BlueTooth_HC05-master_affecto3t_bluetooth_android_" 暗示了这是一个关于使用Android开发蓝牙(Bluetooth)应用的项目,其中可能包含一个名为"BlueTooth_HC05-master"的主代码库。这个项目可能专注于与HC-05...
12. **android.permission.BLUETOOTH_ADMIN** - 允许应用程序发现并配对蓝牙设备,对于设置和管理蓝牙连接至关重要。 13. **android.permission.BRICK** - 非常危险的权限,允许应用程序使设备进入不可用状态。...
在Android系统中,通过Bluetooth API,开发者可以实现设备间的通信,例如将Android设备与单片机或其他Android设备进行数据交换。本项目"BlueTooth.rar"就是针对这一需求,提供了一套实现Android设备与其他设备蓝牙...
Android系统的源代码被组织成多个目录,其中与蓝牙相关的源码主要位于`hardware/bluetooth`目录下。 **2.1.2 Android Bluetooth 架构图** - **用户空间(User Space)**:包含蓝牙相关的应用程序和服务。 - **蓝牙...
- **声明**:`<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />`。 12. **BRICK** - **定义**:未知权限,文档中未给出明确解释。 - **用途**:不建议普通应用使用。 - **声明**:暂无...
Android Bluetooth蓝牙技术是移动开发中常见的一种无线通信方式,它允许设备之间进行短距离的数据交换。在Android平台上,蓝牙功能的使用涉及多个步骤,这里我们将深入探讨这些流程。 首先,要启用蓝牙功能,开发者...
这两个权限主要用于地理位置相关的应用,如地图导航、天气预报等。开发者需要根据实际需求选择合适的定位精度,以平衡用户体验与隐私保护。 #### 三、`ACCESS_LOCATION_EXTRA_COMMANDS` **权限说明:** 此权限...
**CSRMesh2.1版本Android介绍说明** CSRMesh是一种基于Bluetooth Low Energy (BLE) 技术的无线网络协议,主要用于物联网(IoT)设备之间的通信,尤其是智能家居和智能照明系统。CSRMesh2.1版本是该技术的一个更新,对...
"JavaApk源码说明.txt"可能包含了对源码的详细解释,包括如何构建项目、如何运行以及关键函数的用法。这将帮助开发者理解代码结构,快速定位和修改代码。"下载更多打包源码~.url"可能是一个链接,指向更多类似的源码...
有关 Android TSC 蓝牙/以太网库功能的说明 1. openport() Bluetooth openport(a) Description: Start the printer spool. Parameter: a: String Input the Bluetooth Mac Address, example:“00:19:0E...
### android.permission.BLUETOOTH 和 android.permission.BLUETOOTH_ADMIN 这两个权限分别允许应用连接到已配对的蓝牙设备和发现并配对新的蓝牙设备。对于任何需要与蓝牙设备交互的应用,这些权限都是必需的。 ##...