蓝牙双模设备连云激活

更新时间:2024-09-03 08:02:36下载pdf

准备工作

  • SDK 版本 2.3.0-indy 开始支持。
  • 开启连云激活,需要确保设备当前处于蓝牙链路激活状态。也就是说,通过蓝牙,将连云激活的信息传输给设备。
  • 如果需要判断云端链路是否激活,可以通过 IDevice.getMeta().get("wifiEnable") 方法,查询设备是否已连接 Wi-Fi 网络。如果结果为 true,则表示云端链路已激活。
  • 系统要求:蓝牙使用需要安卓 4.3 及以上版本,智慧行业 App SDK 从安卓 6.0 开始支持。

  • Manifest 权限

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    
    <!-- Android 12 新增 -->
    <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
    
  • 蓝牙权限检测:每次扫描和连接前,都要进行检测,否则 App 无法正常使用蓝牙。

    • App 在使用蓝牙连接或者扫描操作前,需要检查 App 定位权限是否被允许。
    • 检查蓝牙状态是否已开启。

      该部分检查逻辑,智慧行业 App SDK 未提供 API,您可自行检测。

初始化 IActivator

参数说明

参数名 类型 是否必填 说明
mode ActivatorMode 配网模式

代码示例

BLEWIFICloudActivator blewifiCloudActivator = (BLEWIFICloudActivator) ActivatorService.activator(ActivatorMode.BLE_WIFI_ENABLE);

初始化配网参数

从扫描监听结果中,获取相关参数。

参数说明

参数名 类型 是否必填 说明
devId String 设备 ID
pwd String Wi-Fi 网络的密码
ssid String Wi-Fi 网络的 SSID
timeout long 连云激活超时时间,单位:毫秒,默认值:100
BLEWIFICloudActivatorParams params = new BLEWIFICloudActivatorParams.Builder()
                            .setSsid(ssid)
                            .setPwd(password)
                            .setDevId(deviceId)
                            .setTimeout(60 * 1000)
                            .build();
blewifiCloudActivator.setParams(params);

注册 IActivatorListener 监听配网结果

代码示例

blewifiCloudActivator.setListener(new IActivatorListener() {
            @Override
            public void onSuccess(@Nullable IDevice iDevice) {
                Log.d(TAG, "onSuccess: ");

            }

            @Override
            public void onError(@NonNull String s, @NonNull String s1) {
                Log.d(TAG, "onError: ");

            }
        });

开始连云激活

该方法用于开始设备配对操作。

代码示例

blewifiCloudActivator.start();