找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3758|回复: 2
打印 上一主题 下一主题
收起左侧

Android BLE开发的一些体会与总结

[复制链接]
跳转到指定楼层
楼主
ID:3721 发表于 2015-1-5 15:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
很高兴也很无奈的做一个BLE的项目,高兴的是BLE是未来的一种趋势,有了这个经验以后可以混口饭吃,无奈的是身为一个Android developer android系统对ble的支持实在是太差了。在经历了三星的4.1,4.2 和最新的4.3之后生出了一种前所未有的迫切想转行IOS的想法,因为Android的ble真是太要命了。发了这么多牢骚,活还是要干的。这篇博客主要是为了记录一下开发情况以及过程,便于以后开发的时候查看,有兴趣的同学也可以瞅瞅。

首先是现在BLE的开发情况(截止到今天2013-11-08),现在Android ble开发一般分为四个版本:


1、三星的4.0 和 4.1系统 。这个版本的ble开发没有官方的支持,只是三星说我的某些手机支持ble。然后民间的一些大神们开发反编译三星的rom,找到了一系列的三星未开放的关于ble的方法。可以通过反射调用也可以通过导入一些反编译的jar包(基本没用就不上传了)来调用。但是经过1一个半月的折磨,终于发现连接太不稳定了,根本就不能拿来当产品。


2、MOTO放出的sdk。这个版本我没有接触过不知道怎么样,不多说只是提一下。


3、三星的4.2系统。大概是看到程序猿们太辛苦了(只是自己YY而已),三星放出了官方的SDK。但是这个sdk只支持三星自己的4.2的手机。三星虽然出货多但是android阵营的手机品牌实在是太多了三星的4.2又太少,加上当时有传闻google4.3很快就要发布,包含4.3的API。所以这个版本的ble我没做过,不过貌似做这个版本的人还不少。


4、万众期待的Android4.3。这个版本是现在最流行的,因为是google官方的所以只要是每个手机官方的4.3系统都可以用BLE的API。有的同学会刷4.3的系统也可以开发,这是因为rom里面包含了适合手机蓝牙的驱动。如果你的手机用了一款很偏的蓝牙芯片,而rom里面又没有这款芯片的驱动 ,那么恭喜你----4.3的API依然不好用。但是目前来看大多数手机还是没问题的像小米三星等。


介绍完了BLE的情况,就可以选择版本开发了。很多人想做通用版的,但是本人技术有限做不了通用版的。所以如果有哪位大神偶尔看到这篇blog而且已经做出通用版的了,请让我抱个大腿!


除去各个版本不谈,ble的开发还是比较简单的,但是还是要大体了解BT4.0关于Low Energy的一些协议(GATT)。一个BLE设备包含很多的服务(BLUETOOTHSERVICE),每个服务又包含很多的特征(characteristic),每个characteristic包含3个value。characteristic可以是可读写的、只读、只写、或者通知类型,还有一个什么类型我忘了- -!因为我从来没用到过。每个服务和characteristic都有一个UUID来唯一确定,所有想要开发BLE必须知道你想要用哪个服务的那个characteristic也就是要知道对应的UUID。很多人说我传的demo不好用,就是因为UUID都不换成自己设备的。


具体流程就是 scan(搜索) -->  connect(连接) --> discoverService(发现ble设备的服务)--> 遍历service里的characteristic -->读写characteristic。


由于每个版本的方法名称不一样实现逻辑不一样,就不给大家写代码了只发两个版本的demo,但是走的流程都是一样的。


三星的4.0 4.1demo看看就好 基本没人用了

SamsungDemo1

这个demo要改UUID


Android4.3demo 这个demo是4.3的可以研究一下,包含了读写以及通知

android4.3


关于android4.3 还有两点要说的:

1、最好做到从手机端发出去的每个命令之间最好sleep一段时间。

2、android端与设备保持连接可能要占用cpu,所以设备端中断最好不要太频繁

    乱七八糟的先写到这,有时间好好整理一下。有什么进度也会更新过来。

2013/12/12

    1、感觉三星的蓝牙协议栈跟google的不一样,用三星的协议栈不存在设备中断太多会出133的issue。

2、各个手机原版4.3rom比自己刷的稳定的多,Nexus4/5 note2泄露版这些官方rom里 像多个设备快速发命令时可以不用添加sleep 但是小米刷的4.3就必须添加sleep要不然会出133。个人观点,如果有朋友知道原因的希望可以解答一下。

                                                                                                                                                                                                                                                                                                        

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:73217 发表于 2015-2-3 18:15 | 只看该作者
可以加群讨论哈,最新版手机控制单片机STM32 Android OTG 190105401
回复

使用道具 举报

板凳
ID:73217 发表于 2015-2-3 18:15 | 只看该作者
可以加群讨论哈,安卓手机控制单片机STM32 Android OTG 190105401
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表