智慧硬件开发 硬件直连接入 设备接入 蓝牙相关协议 蓝牙识别及配网SDK
蓝牙识别及配网SDK
最后更新:2022/09/16
可联系渠道经理采购或代理智慧硬件接口已支持设备 联系渠道经理
蓝牙识别及配网SDK
最后更新:2022/09/16

目录

  • 配置SDK
  •       步骤1:导入SDK
  •       步骤2:配置build.gradle
  • 使用SDK
  •       初始化
  •       启动蓝牙服务
  •             AirSyncApi.Callback定义
  •             AirSyncApi.Callback onErr回调错误码说明
  •       发送wifi连接状态
  •             reportWifiStatus错误码说明
  •       关闭服务
  • 示例
  • 本sdk用于硬件设备端,提供蓝牙服务,供企业微信发现该设备,并使其收到设置WIFI的指令。

    配置SDK

    步骤1:导入SDK

    将wwairsync_sdk.aar,放入libs目录

    步骤2:配置build.gradle

    repositories {
    flatDir { dirs 'libs' }
    }

    dependencies {
    compile(name: "wwairsync_sdk-release", ext: "aar")
    }

    使用SDK

    本sdk提供了AirSyncApi作为唯一接口

    初始化

    public static AirSyncApi getApi(android.content.Context ctx,
                                    java.lang.String sn,
                                    java.lang.String secretNo,
                                    java.lang.String deviceId,
                                    java.lang.String macAddress)

    请求参数说明:

    参数说明
    ctxContext 请保持调用stop()之前不会销毁
    sn设备sn
    secretNo设备secretNo
    deviceId设备deviceId
    macAddress设备wifi模块mac地址

    返回参数:
    新实例

    启动蓝牙服务

    public boolean start(AirSyncApi.Callback cb)

    开始广播,并启动蓝牙服务

    请求参数说明:

    参数说明
    cbAirSyncApi.Callback

    返回参数:
    false 无法启用,系统蓝牙接口不可用

     

    AirSyncApi.Callback定义

    public interface Callback {
            /**
             * @param err {@link AirSyncApi#ERROR_START_SERVER_FAILED} 
    		 *	       or {@link AirSyncApi#ERROR_START_ADV_FAILED} 
    		 *		   or {@link AirSyncApi#ERROR_REPORT_WIFI_STATUS}
             */
            void onErr(int err);
    
            /**
             * 请求设备设置wifi,设置完成后请调用
    		 {@link AirSyncApi#reportWifiStatus(int, String)} 通知设置结果
             *
             * @param ssid     Wi-Fi ssid
             * @param bssid    Wi-Fi bssid
             * @param password Wi-Fi 密码
             * @param protocol Wi-Fi 协议,目前仅支持:"None","WEP","WPA","WPA2"
             */
            void onConnectWifi(String ssid,
    						   String bssid, 
    						   String password, 
    						   String protocol);
        }

    AirSyncApi.Callback onErr回调错误码说明

    static int	ERROR_REPORT_WIFI_STATUS
    收到此err请调用reportWifiStatus(int, String)通知wifi连接状态
    
    static int	ERROR_START_ADV_FAILED
    无法启用,原因是广播失败
    
    static int	ERROR_START_SERVER_FAILED
    无法启用,原因是服务启动失败

    发送wifi连接状态

    public abstract boolean reportWifiStatus(int errCode, java.lang.String ip)

    请求参数说明:

    参数说明
    errCode错误码
    ip如果wifi连接成功填实际IP地址,否则填空白字符串 ""

    返回参数:
    发送成功与否

    reportWifiStatus错误码说明

    static int	WIFI_CONNECTED
    通知wifi连接状态,连接成功
    static int	WIFI_NOT_EXIST
    通知wifi连接状态,无法找到对应ssid和bssid的wifi
    static int	WIFI_PASSWORD_ERR
    通知wifi连接状态,wifi密码错误

     

    关闭服务

    public abstract void stop()

    停止广播和蓝牙服务,可在设置wifi成功后延时60s调用

     

    示例

    AirSyncApi airSync = AirSyncApi.getApi(this, "QYWX010", "a54f3f3fc293a092dbea80230413f30e", "15470990896375414028", "12:12:22:11:22:11");

    airSync.start(new AirSyncApi.Callback() {
    @Override
    public void onErr(int err) {
    if(err == AirSyncApi.ERROR_REPORT_WIFI_STATUS){ airSync.reportWifiStatus(AirSyncApi.WIFI_CONNECTED, "1.2.11.1");
    }
    }

    @Override
    public void onConnectWifi(String ssid, String bssid, String password, String protocol) {
    //do connect wifi
    airSync.reportWifiStatus(AirSyncApi.WIFI_CONNECTED, "1.2.11.1");
    new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
    @Override
    public void run() {
    airSync.stop();
    }
    }, 60000);
    }
    });

    上一篇
    蓝牙识别及配网协议
    下一篇
    设备比对版本号流程