[原创] BLE的Android上位机开发(上)

zwq1489   2017-7-2 19:53 楼主
各位坛友大家好啊!
两个月之前发了一篇BLE的Android开发小技巧(见帖:BLE4.0安卓上位机开发小技巧),但因为当时Android上位机还没有完全开发完毕,BleLib开源包也用的不太熟练,因此没有详细的代码说明。随后就是漫长的出差,天天忙忙碌碌的没时间弄。然而,就在昨天,就在昨天~我的Android上位机全部开发完毕啦~~(真是个举国欢庆的日子啊。。)别的不多扯了,进入主题聊聊Blelib这个包怎么用吧。


1、声明对象
这个太简单,直接码。这个mBleService是核心。
  1. BleService mBleService=null;



2、绑定BLELIB服务
这里涉及到两个函数。其中doBindService()是用来绑定BLE服务的,这个在初始化建立蓝牙连接的时候用到;doUnBindService()是用来解绑服务的,在关闭的时候调用。
  1. private void doBindService() {
  2.         Intent serviceIntent = new Intent(this, BleService.class);
  3.         bindService(serviceIntent, serviceConnection, Context.BIND_AUTO_CREATE);
  4.         mIsBind=true;
  5. }

  6. private void doUnBindService() {
  7.         if (mIsBind) {
  8.                 unbindService(serviceConnection);
  9.                 mBleService = null;
  10.                 mIsBind = false;
  11.         }
  12. }


3、打开蓝牙扫描设备
这个要介绍一位新人了~~~serviceConnection:
  1. private ServiceConnection serviceConnection = new ServiceConnection() {
  2.         @Override
  3.         public void onServiceConnected(ComponentName name, IBinder service) {
  4.                 mBleService = ((BleService.LocalBinder) service).getService();
  5.                 if (mBleService != null) setBleServiceListener();
  6.                 if (mBleService.initialize()) {
  7.                         if (mBleService.enableBluetooth(true)) {
  8.                                 mBleService.scanLeDevice(true);
  9. Toast.makeText(MainActivity.this, "Bluetooth was opened", Toast.LENGTH_SHORT).show();
  10.                         }
  11.                 } else {
  12.                         Toast.makeText(MainActivity.this, "not support Bluetooth", Toast.LENGTH_SHORT).show();
  13.                 }
  14.         }
  15. };



细心的网友肯定发现了,serviceConnection就是doBindService()里面调用的东西,通过重写ServiceConnection()实例化mBleService,并且判断设备是否支持蓝牙,然后开始扫描BLE设备。


观测Android是否还在扫描蓝牙设备,可以用mBleService.isScanning()函数,返回true是仍在扫描,false是扫描完毕。


4、设置各种回调函数
在serviceConnection里面有个调用:setBleServiceListener(); 这个是核心的核心,各种Scan、Connection、Services、Characteristic什么的,重要的信息都在这里。


那么~~抖个包袱,这一部分下次再开帖分享给大家!


感谢大家百忙之中看帖~谢谢大家啦!


此内容由EEWORLD论坛网友zwq1489原创,如需转载或用于商业用途需征得作者同意并注明出处


回复评论 (4)

2推荐 zwq1489 

这些都是BLELIB开源包里面的,大家可以自己去找哈~ 我也只是用的人家的~不对的地方欢迎指出!
点赞  2017-7-2 20:12
高大上啊,狂顶!!
点赞  2017-7-3 23:16
谢谢大神分享
点赞  2017-7-6 22:11
mark,谢谢分享,学习
点赞  2017-8-9 15:43
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复