目录
本sdk用于硬件设备端,提供蓝牙服务,供企业微信发现该设备,并使其收到设置WIFI的指令。
将wwairsync_sdk.aar,放入libs目录
repositories {
flatDir { dirs 'libs' }
}
dependencies {
compile(name: "wwairsync_sdk-release", ext: "aar")
}
本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)
请求参数说明:
参数 | 说明 |
---|---|
ctx | Context 请保持调用stop()之前不会销毁 |
sn | 设备sn |
secretNo | 设备secretNo |
deviceId | 设备deviceId |
macAddress | 设备wifi模块mac地址 |
返回参数:
新实例
public boolean start(AirSyncApi.Callback cb)
开始广播,并启动蓝牙服务
请求参数说明:
参数 | 说明 |
---|---|
cb | AirSyncApi.Callback |
返回参数:
false 无法启用,系统蓝牙接口不可用
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);
}
static int ERROR_REPORT_WIFI_STATUS
收到此err请调用reportWifiStatus(int, String)通知wifi连接状态
static int ERROR_START_ADV_FAILED
无法启用,原因是广播失败
static int ERROR_START_SERVER_FAILED
无法启用,原因是服务启动失败
public abstract boolean reportWifiStatus(int errCode, java.lang.String ip)
请求参数说明:
参数 | 说明 |
---|---|
errCode | 错误码 |
ip | 如果wifi连接成功填实际IP地址,否则填空白字符串 "" |
返回参数:
发送成功与否
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);
}
});