android ble蓝牙低功耗开发简单应用
程序员文章站
2024-03-24 21:08:52
...
关于蓝牙回调方法传递数据展示
这是我第一次接触蓝牙开发,所以基本上都不是和了解,做出来的东西也没有考虑到多线程的问题,就是公司自己的小demo,功能就是取出蓝牙里面传递的数据并且读出信息
1.蓝牙使用主要依赖的是 BluetoothAdapter 和 BluetoothManager ,基本的打开蓝牙就不说了直接使用
// 初始化蓝牙适配器
btm = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
if (btm == null) {
return;
}
bta = btm.getAdapter();
// 打开蓝牙
if (bta == null || !bta.isEnabled()) {
mToast = Toast.makeText(this, "请打开蓝牙", Toast.LENGTH_LONG);
mToast.setGravity(Gravity.CENTER_HORIZONTAL,0,0);
mToast.show();
onBackPressed();
} else {
bta.startLeScan(oldBtsc);
// 设置扫描时间
handler.postDelayed(new Runnable() {
@Override
public void run() {
bta.stopLeScan(oldBtsc);
}
}, 60*1000*30);
}
这段代码是打开蓝牙,设定了一个结束时间,可以将代码封装到方法里面,然后onCreate里面调用
打开蓝牙适配器后就能直接取到信息,通过广播启动后的回调
/**
* 广播启动后的回调函数
*/
private BluetoothAdapter.LeScanCallback oldBtsc = new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord) {
//这边可以写业务逻辑,scanRecord 就是你接受的蓝牙传递给你的信息,基本上都会有对应的处理信息的逻辑,我们公司的不能写出来,
//就是自己思考,我这边使用了adapter显示数据,由于有更新的信息,所以使用的notifyDataSetChanged方法
adapter.notifyDataSetChanged();
}
}
};
};
最后退出本页面时在onDestroy关比适配器 其他就自己考虑了