Skip to content

BLE 接入JS SDK

Air edited this page May 21, 2019 · 1 revision

系统要求

min sdk > 21 即 Android 5.0以上的系统版本

引入wonderbits库

在app.gradle下 加入

implementation "cn.wonderbits:ble:1.1.1"

配置 packagingOptions

在项目build.gradle文件里的加入packagingOptions设置。

android {
    packagingOptions {
        exclude 'META-INF/INDEX.LIST'
        exclude 'META-INF/io.netty.versions.properties'
    }
} 

初始化wonderbits

WBBle.init(this)
     .setDebuggable(true); // 会输出日志和错误toast

扫描蓝牙设备

 WBBle.get().startScan(new IScanCallback() {
            @Override
            public void onFailed(@NotNull String msg) {
                // 申请打开蓝牙
                WBBle.get().requestBluetoothEnable(context);
                Log.e(TAG, msg)
            }

            @Override
            public void onSuccess(@NotNull List<? extends BleScanDevice> list) {
                // 扫描成功
                // list为扫描到的蓝牙设备列表
                // 包含蓝牙名称和MAC地址
            }
        });

连接蓝牙设备

当扫描成功后,用户主动点击某个蓝牙设备,则需要进行连接。

扫描成功获取的蓝牙设备列表为List<BleScanDevice> devices, 用户选中第1个蓝牙设备,连接蓝牙代码如下:

WBBle.get().connectDevice(this, devices.get(0).getDevice().getAddress(), new IConnectCallback() {
            @Override
            public void onFailed(@NotNull String msg) {
                // 连接失败
            }

            @Override
            public void onConnected() {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        // 成功连接设备进行你的处理
                    }
                });

            }

            @Override
            public void onDisconnected() {

            }
        });

连接蓝牙成功

这样就成功开启服务,等待JS SDK连接了。

返回JS SDK文档进行接下来操作即可。

退出App时关闭服务

WBBle.get().close();