BLE的Android上位机开发(上)
各位坛友大家好啊!上篇BLE的Android开发小技巧(见帖:BLE4.0安卓上位机开发小技巧),但因为当时Android上位机还没有完全开发完毕,BleLib开源包也用的不太熟练,因此没有详细的代码说明。随后就是漫长的出差,天天忙忙碌碌的没时间弄。然而,就在昨天,就在昨天~我的Android上位机全部开发完毕啦~~(真是个举国欢庆的日子啊。。)别的不多扯了,进入主题聊聊Blelib这个包怎么用吧。1、声明对象这个太简单,直接码。这个mBleService是核心。[Java] 纯文本查看 复制代码?1BleService mBleService=null;2、绑定BLELIB服务这里涉及到两个函数。其中doBindService()是用来绑定BLE服务的,这个在初始化建立蓝牙连接的时候用到;doUnBindService()是用来解绑服务的,在关闭的时候调用。[Java] 纯文本查看 复制代码?01020304050607080910111213private void doBindService() {Intent serviceIntent = new Intent(this, BleService.class);bindService(serviceIntent, serviceConnection, Context.BIND_AUTO_CREATE);mIsBind=true;}private void doUnBindService() {if (mIsBind) {unbindService(serviceConnection);mBleService = null;mIsBind = false;}}3、打开蓝牙扫描设备这个要介绍一位新人了~~~serviceConnection:[Java] 纯文本查看 复制代码?010203040506070809101112131415private ServiceConnection serviceConnection = new ServiceConnection() {@Overridepublic void onServiceConnected(ComponentName name, IBinder service) {mBleService = ((BleService.LocalBinder) service).getService();if (mBleService != null) setBleServiceListener();if (mBleService.initialize()) {if (mBleService.enableBluetooth(true)) {mBleService.scanLeDevice(true);Toast.makeText(MainActivity.this, "Bluetooth was opened", Toast.LENGTH_SHORT).show();}} else {Toast.makeText(MainActivity.this, "not support Bluetooth", Toast.LENGTH_SHORT).show();}}};细心的网友肯定发现了,serviceConnection就是doBindService()里面调用的东西,通过重写ServiceConnection()实例化mBleService,并且判断设备是否支持蓝牙,然后开始扫描BLE设备。观测Android是否还在扫描蓝牙设备,可以用mBleService.isScanning()函数,返回true是仍在扫描,false是扫描完毕。4、设置各种回调函数在serviceConnection里面有个调用:setBleServiceListener(); 这个是核心的核心,各种Scan、Connection、Services、Characteristic什么的,重要的信息都在这里。那么~~抖个包袱,这一部分下次再开帖分享给大家!感谢大家百忙之中看帖~谢谢大家啦!