基础的Ble SDK可以方便从硬件端采集到原始脑波、心率等数据.
在项目根目录的build.gradle文件下添加以下依赖:
repositories {
mavenCentral()
}
在所需的module中的build.gradle文件下添加以下依赖:
implementation 'cn.entertech.android:biomoduleble:1.5.5'
并且需要申明蓝牙相关权限:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
分两种连接设备方式:扫描&连接信号最强设备;连接已配对的设备;
代码示例
val biomoduleBleManager = BiomoduleBleManager.getInstance(context)
biomoduleBleManager.connectDevice(fun(mac: String) {
BleLogUtil.i(TAG, "connect success $mac")
},
{ msg ->
BleLogUtil.i(TAG, "connect failed")
},
ConnectionBleStrategy.SCAN_AND_CONNECT_HIGH_SIGNAL)
代码示例
val biomoduleBleManager = BiomoduleBleManager.getInstance(context)
biomoduleBleManager.connectDevice(fun(mac: String) {
BleLogUtil.i(TAG, "connect success $mac")
},
{ msg ->
BleLogUtil.i(TAG, "connect failed")
},
ConnectionBleStrategy.CONNECT_BONDED)
代码示例
//心率数据监听
var heartRateListener = fun(heartRate: Int) {
BleLogUtil.d("心率数据" + heartRate)
}
biomoduleBleManager.addHeartRateListener(heartRateListener)
//原始脑波数据监听
var rawDataListener = fun(data:ByteArray){
BleLogUtil.d(Arrays.toString(data))
}
biomoduleBleManager.addRawDataListener(rawDataListener)
注意:如果在界面退出时需要调用对象的移除监听方法,否则会出现内存溢出,如biomoduleBleManager.removeRawDataListener(rawDataListener)
代码示例
//如果想要停止采集调用stopHeartAndBrainCollection()
biomoduleBleManager.startHeartAndBrainCollection()
更多详细的蓝牙ble方法可以参考Ble详细API说明