蓝牙(Bluetooth)---源码目录及设置应用源码分析

一 Bluetooth 的设置应用

   packages\apps\Settings\src\com\android\settings\bluetooth\*

   蓝牙设置应用及设置参数,蓝牙状态,蓝牙设备等。

 

BluetoothDevicePreference.java

顾名思义,蓝牙设备首选项,也就是蓝牙设备的配置信息,比如是否连接,是否配对,是否可见等等。该类继承了preference类,主要是提供获取蓝牙设备及通知蓝牙设备配置信息变化。

 

BluetoothDiscoverableEnabler.java

蓝牙搜索UI逻辑处理,包括搜索暂停,搜索恢复,及蓝牙开启关闭时的蓝牙搜索处理,以及搜索超时等处理。该类同时使用了broadcast与handle机制,用来处理搜索的状态变化。

 

BluetoothEnabler.java

蓝牙功能的开启/关闭功能处理。

 

BluetoothEventRedirector.java

蓝牙事件转发处理。通过使用broadcast机制,在onstart里面注册了蓝牙的事件权限。

 

BluetoothNamePreference.java

监听蓝牙名字的变化

 

BluetoothPairingDialog.java

是activity,配对时各种提示框及按键事件处理,如用户请求配对,密码输入,密码确认,同意等提示框。

 

BluetoothPairingRequest.java

配对的数据处理,为BluetoothPairingDialog.java提供数据支持,同时启动BluetoothPairingDialog.java activity当蓝牙应用在前台并且屏幕是亮的,否则通知系统需要弹出提示框(比如蓝牙后台提示,通过notification通知提示)。

 

BluetoothPermissionActivity.java

允许连接的提示框处理

 

BluetoothPermissionRequest.java

为BluetoothPermissionActivity.java提供数据支持,若蓝牙在前台并且屏幕是亮的,则启动BluetoothPermissionActivity.java activity,否则使用notification来提示通知。

 

RequestPermissionActivity.java

询问用户是否开启蓝牙及蓝牙搜索,当前蓝牙状态如果是未开启状态,则开启蓝牙及蓝牙搜索;当前蓝牙如果是开启状态,则不处理;当只针对是否开启蓝牙时,则开启蓝牙并不开启蓝牙搜索。

 

RequestPermissionHelperActivity.java

询问用户是否开启蓝牙及蓝牙搜索,一般由RequestPermissionActivity.java启动。

 

SettingsBtStatus.java

蓝牙各种状态的资源显示

 

BluetoothSettings.java

蓝牙设置应用,蓝牙状态变化及设备绑定信息处理等。各个菜单处理主要是通过CachedBluetoothDevice.java来实现。主要有添加蓝牙设备,删除蓝牙设备,点击获取蓝牙设备信息,及创建具体蓝牙设备的菜单等。

 

 ConnectSpecificProfilesActivity.java

蓝牙设备耳机、A2DP、SAP相关的设置处理

 

 DockService.java

蓝牙Dock相关服务,配置信息的修改,连接的修改等。

 

DockEventReceiver.java

接收各种dock事件,并启动DockService服务。并提供一个结束服务方法。

 

CachedBluetoothDevice.java

提供蓝牙设备的各种属性信息以及提供蓝牙设备连接,配对等方法。

 

 CachedBluetoothDeviceManager.java

管理蓝牙设备,包括增加、删除蓝牙设备及通知

 

LocalBluetoothManager.java

提供了一系列蓝牙方法,如开始扫描、结束扫描逻辑处理。

二 Bluetooth 的服务应用

  packages\apps\Bluetooth\src\com\android\bluetooth\*

  蓝牙FTP,OPP,SAP,BPP等实现。蓝牙传输及配对等实现。

 

三 Bluetooth 免提、耳机及A2DP应用

   packages\apps\Phone\src\com\android\phone\Bluetooth*.*

   主要是Bluetooth在其他应用如通话,电话本还有耳机相关的应用。

 

四 Bluetooth 的JAVA类

   frameworks\base\core\java\android\bluetooth\*

   如BluetoothClass,BluetoothAdapter,BluetoothDevice等。Bluetooth应用就是通过这些类实现。

 

五 Bluetooth 的JNI接口

   frameworks\base\core\jni\android_bluetooth_*.*

   主要是为Bluetooth的JAVA类提供一些底层API支持(C++实现)。如headset,socket等。

 

六 Bluetooth的协议栈支持(Bluez)

   external\bluetooth\*

   提供蓝牙协议栈支持,android主要是用Bluez协议栈。

 

七 Bluetooth的设备管理库

   system\bluetooth\*

   应该是属于kernel层(linux核心代码)了,具体还需要了解?

 

八 Bluetooth的kernel层

   kernel\drivers\bluetooth\*

   kernel\net\bluetooth\*

   linux系统上Bluetooth的核心代码,包括驱动?

通话应用相关源码分析

BluetoothAtPhonebook.java

通过AT命令帮助管理电话本显示

 

BluetoothCmeError.java

扩充的AT命令错误编码

 

BluetoothHandsfree.java

通话中蓝牙耳机,蓝牙免提的管理

 

BluetoothHeadsetService.java

提供蓝牙耳机,蓝牙免提profile


OPP

BluetoothOppLauncherActivity.java

其他应用启动蓝牙的入口。比如通过蓝牙发送功能。发送功能分为发送文件/多个文件/内容三种模式。发送内容的时候,会新建一个临时文件夹来保存发送的内容。发送文件的路径都会保存到数据库中。当蓝牙未启动,则启动BluetoothOppBtEnableActivity.java激活蓝牙,否则启动BluetoothOppReceiver.java处理。

 

BluetoothOppBatch.java

存储并提供一些方法,关于OPP服务共享的传输信息。

 

BluetoothOppBtEnableActivity.java

询问是否开启蓝牙提示框

 

BluetoothOppBtEnablingActivity.java

蓝牙开启进度条处理,包括正常结束和按键取消结束。

 

BluetoothOppBtErrorActivity.java

异常提示框,标题及内容由启动该activity提供。

 

BluetoothOppIncomingFileConfirmActivity.java

询问用户是否接收对方发过来的文件

 

BluetoothOppL2capListener.java

创建L2CAP连接监听线程

 

BluetoothOppLiveFolder.java

创建Live文件夹

 

BluetoothOppManager.java

蓝牙服务层OPP接口。管理蓝牙发送的一些共享数据

 

BluetoothOppNotification.java

蓝牙发送/接收的提示框处理,如用户确认发送接收,发送接收完成等。

 

BluetoothOppPreference.java

蓝牙设备名字及OBEX的配置信息

 

BluetoothOppProvider.java

针对SHARES SHARES_ID LIVE_FOLDER_RECEIVED_FILES 三种情况对DB进行插入,更新,删除等操作。

 

BluetoothOppReceiveFileInfo.java

存储蓝牙接收文件的信息。生成一个唯一的文件名称,避免冲突覆盖。同时在生成文件前做了一些空间是否足够,是否存在外接存储器等判断。

 

BluetoothOppReceiver.java

接收一些OPP的广播消息

 

BluetoothOppRfcommListener.java

创建RFCOMM连接监听

 

BluetoothOppSendFileInfo.java

存储发送的文件信息

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要开始学习蓝牙低能耗(BLE)技术,首先需要了解BLE的基本原理和特点。BLE是一种低功耗的蓝牙通信技术,在物联网和智能设备领域具有广泛的应用。它具有低成本、低功耗和简单易用的特点,适用于需要长时间运行并且电池寿命要求较高的设备。 学习BLE首先需要了解BLE的基本特性,包括广播、连接和数据传输。广播是BLE设备发送广播包来宣传自己的存在和服务信息,连接是建立BLE设备之间的连接通道来进行数据传输,数据传输可以是单向的也可以是双向的,适用于不同的应用场景。 其次,需要熟悉BLE的开发工具和平台,例如使用BLE开发板、开发套件或者模块来进行BLE应用的开发。常见的BLE开发平台包括Arduino、Raspberry Pi、nRF52开发板等,可以选择适合自己的开发平台进行学习和实践。 另外,要学会使用BLE的开发工具和编程语言,例如使用BLE SDK、BLE API和相应的编程语言(如C、C++、Python等)来编写BLE应用程序。通过学习和实践,可以掌握BLE的开发流程、协议栈、服务和特征等相关知识。 最后,需要不断实践和练习,通过搭建BLE通信的demo、开发BLE应用程序、调试和优化BLE应用来提升自己的技能和经验。同时,可以参考相关的教程、文档和社区资源,积极参与BLE开发者社区,与他人交流和分享经验,共同进步。通过持续的学习和实践,可以逐渐掌握BLE技术,为物联网和智能设备领域的开发做出贡献。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值