赶着五一假期看了看41Z里面BLE这块的SDK,发现NXP提供的example里面用到的UUID基本都是SIC组织规定的service和characteristic,而且用的传感器数据基本都是随机数
(这也不能怪人家,毕竟板载资源有限嘛,需要大家再根据自己的项目拓展开发啦~ )
那既然NXP已经写好了包含service和characteristic的数据库,下位机主要的工作量就在重新定义自己的service和characteristic,还有采集数据和逻辑控制,这些都不是我这篇帖子要讲的,因为这些对论坛里的大神们绝对是小菜一碟。上位机是人机交互的主阵地,我打算基于Android平台,结合41Z的ble实现双向通信,不知论坛里有没有java编程大神,反正我是小菜一只。。 今天先把自己开发过程中的遇到的问题跟各位坛友分享一下。
开发平台:Android Studio,这个工具是Google的亲儿子,以前用过MyEclipse,不过现在已经不用了。
网上有个开源包,BleLib,个人感觉非常好用,也是今天主要推荐的主角,通过这个包可以省去很多复杂的工作。
在build.gradle中插入这行代码:
- compile 'com.junkchen.blelib:blelib:1.2.3'
然后编译工程,发现报错了!
看了看原来是安卓最低版本的设定问题,在Android4.3(API18)平台以上才开始支持低功耗蓝牙中央设备角色,楼主习惯性的用4.0.3版本,自然是不行的啦。解决办法就是还在刚才的build.gradle中,把minSdkVersion提高到18以上就可以啦!
- apply plugin: 'com.android.application'
- android {
- compileSdkVersion 25
- buildToolsVersion "25.0.0"
- defaultConfig {
- applicationId "com.android.winkey.bletest"
- minSdkVersion 18//修改这里
- targetSdkVersion 25
- versionCode 1
- versionName "1.0"
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
- }
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- }
- }
- }
- dependencies {
- compile fileTree(include: ['*.jar'], dir: 'libs')
- androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
- exclude group: 'com.android.support', module: 'support-annotations'
- })
- compile 'com.android.support:appcompat-v7:25.1.0'
- testCompile 'junit:junit:4.12'
- compile 'com.junkchen.blelib:blelib:1.2.3'//在这里添加开源包
- }
最后,贴一下下使用这个BleLib库进行Android低功耗蓝牙Ble的开发步骤:
- 添加BleLib库依赖
- 绑定BleLib服务
- 初始化操作
- 打开蓝牙
- 扫描Ble设备
- 连接Ble服务
- 读写Ble特性和接收GATT通知
祝大家开发顺利!
此内容由EEWORLD论坛网友zwq1489原创,如需转载或用于商业用途需征得作者同意并注明出处