GizWifiSDK 类

机智云 Wifi SDK 的基础类,为APP开发者提供设备配置和发现、用户登录和注册等功能。

目录

属性访问

[setListener]

设置SDK通用监听器

定义

public void setListener(GizWifiSDKListener listener)

[getDeviceList]

GizWifiDevice 对象数组。设备列表缓存,APP 访问该变量即可得到当前 GizWifiSDK 发现的设备列表。

定义

public List<GizWifiDevice> getDeviceList()

API 定义

[sharedInstance]

获取GizWifiSDK单例的实例 返回值返回初始化后 SDK 唯一的实例。SDK 未初始化,或者初始化失败,返回 nil。

定义

public static synchronized GizWifiSDK sharedInstance()

代码示例

GizWifiSDK mSDKInstance = GizWifiSDK.sharedInstance();

[setListener]

设置SDK通用监听器

定义

public void setListener(GizWifiSDKListener listener)

参数

属性名 描述
listener GizWifiSDKListener回调对象

代码示例

GizWifiSDK.sharedInstance().setListener(new GizWifiSDKListener() {
// app根据自己的需要实现回调函数
});

[startWithAppInfo]

启动 SDK。该接口执行成功后,其他接口功能才能正常执行。该接口执行结果由回调didNotifyEvent通知App,回调参数eventID为8316表示SDK启动成功。 如果App要做域名切换和设备类型过滤,则要在此时就指定好域名cloudSeviceInfo和产品信息productInfo。 SDK启动成功后,如果App已经设置了delegate,SDK会立即通过didDiscovered上报发现的设备。

定义

public void startWithAppInfo(Context context, ConcurrentHashMap<String, String> appInfo,
                                 List<ConcurrentHashMap<String, String>> productInfo, ConcurrentHashMap<String, String> cloudServiceInfo)

参数

属性名 描述
context 上下文对象
appInfo 应用信息,格式:{"appId": "xxx", "appSecret": "xxx"}。此参数不能填nil,appId和appSecret必须为有效值。在机智云开发者中心 dev.gizwits.com 中,每个注册的设备在对应的“应用配置”中,都能够查到对应的 appID和appSecret
productInfo 产品信息数组,格式:[{"productKey": "xxx", "productSecret": "xxx"}],此参数选填。如果填写了此参数,则需保证productKey和productSecret都为有效值,否则会被忽略。SDK会根据此参数过滤设备列表
cloudServiceInfo 服务器域名信息,格式:{"appApi": "xxx", // String类型,api服务域名,必填 "push": "xxx" // String类型,推送服务域名,可不填}。如果使用机智云统一部署的云服务域名,此参数填nil,此时将根据用户手机的地理位置信息使用匹配的域名。如果需要独立部署,此参数必须指定域名信息。如果需要指定端口号,可指定Http端口如:xxx.gizwits.com:80,或同时指定Http和Https端口如:xxx.gizwits.com:80&443。不指定端口号时,形如:xxx.gizwits.com

回调

当发生GizEventType中列举的事件类型时,SDK会主动触发该回调,该回调通知的主要是发生的异常事件

public void didNotifyEvent(GizEventType eventType, Object eventSource, GizWifiErrorCode eventID, String eventMessage)

回调参数

属性名 描述
eventType 事件类型。指明发生了哪一类的事件,详细见 GizEventType 枚举定义
eventSource 事件源,指是谁触发的事件。如果eventType是GizEventSDK,eventSource为nil;如果是GizEventDevice,eventSource需要强制转换为GizWifiDevice类型再使用;如果是GizEventM2Mservice或者GizEventToken,eventSource需要强制转换为NSString类型再使用
eventID 事件ID。代表事件编号,详细见 GizWifiErrorCode 枚举定义。该参数指出 eventSource 发生了什么事
eventMessage 事件ID的消息描述

代码示例

// 设置SDK监听
GizWifiSDK.sharedInstance().setListener(mListener);

// 设置AppInfo
ConcurrentHashMap<String, Object> appInfo = new ConcurrentHashMap<String, String>();
appInfo.put("appId", "your_app_id");
appInfo.put("appSecret", "your_app_secret");

// 设置要过滤的设备productKey列表。不过滤则直接传null
List<String> productInfo = new ArrayList<String> ();
ConcurrentHashMap<String, Object> product = new ConcurrentHashMap<String, Object>();
product.put("productKey", "your_product_secret");
product.put("productSecret", "your_product_secret");
productInfo.add(product);

// 指定要切换的域名信息。使用机智云生产环境则传null
// ConcurrentHashMap<String, Object> cloudServiceInfo = new ConcurrentHashMap<String, Object>();
// cloudServiceInfo.put("openAPIInfo", "your_api_domain");

// 调用SDK的启动接口
GizWifiSDK.sharedInstance().startWithAppInfo(context, appInfo, productInfo, null); 

// 实现系统事件通知回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
    @Override
    public void didNotifyEvent(GizEventType eventType, Object eventSource, GizWifiErrorCode eventID, String eventMessage) {
    if (eventType == GizEventType.GizEventSDK) {

    // SDK发生异常的通知
              Log.i("GizWifiSDK", "SDK event happened: " + eventID + ", " + eventMessage);
    } else if (eventType == GizEventType.GizEventDevice) {
              // 设备连接断开时可能产生的通知
              GizWifiDevice mDevice = (GizWifiDevice)eventSource;
              Log.i("GizWifiSDK", "device mac: " + mDevice.getMacAddress() + " disconnect caused by eventID: " + eventID + ", eventMessage: " + eventMessage);
    } else if (eventType == GizEventType.GizEventM2MService) {
              // M2M服务返回的异常通知
              Log.i("GizWifiSDK", "M2M domain " + (String)eventSource + " exception happened, eventID: " + eventID + ", eventMessage: " + eventMessage);
    } else if (eventType == GizEventType.GizEventToken) {
              // token失效通知
              Log.i("GizWifiSDK", "token " + (String)eventSource + " expired: " + eventMessage);
    }
  }
};

[getVersion]

获取 SDK 版本号。 返回值返回当前 SDK 的版本号码

定义

public String getVersion()

代码示例

String sdkVersion = GizWifiSDK.sharedInstance().getVersion();

[getPhoneID]

获取 手机的唯一标志码

定义

public String getPhoneID();

代码示例

String phoneID = GizWifiSDK.sharedInstance().getPhoneID();

[disableLAN]

设置是否禁用小循环功能

定义

public void disableLAN(boolean disabled)

参数

属性名 描述
disabled 禁用或启用小循环

回调

public void didDisableLAN(GizWifiErrorCode result)

回调参数

属性名 描述
result 详细见 GizWifiErrorCode 枚举定义。GIZ_SDK_SUCCESS 表示成功,其他为失败

代码示例

GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().disableLAN(true);

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
  @Override
  public void didDisableLAN(GizWifiErrorCode result) {
    if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
                // 设置成功
    } else {
                // 设置失败
    }
  }
};

[setDeviceOnboardingDeploy]

设备配网接口。配网时可自动完成设备域名部署,此接口对模组固件版本向前兼容。 设备处于 softap 模式时,会产生一个热点名称,手机 wifi 连接此热点后就可以配置了。如果是机智云提供的设备wifi固件,热点名称前缀为"XPG-GAgent-",密码为"123456789"或无密码。设备处于 airlink 模式时,手机随时都可以开始配置 配网时,若检测到手机的配网wifi为5G路由,会通过didNotifyEvent回调通知App,回调中的eventID为8319

参数

属性 描述
ssid 要配置的路由SSID
key 要配置的路由密码
mode 配置模式,详细见 GizWifiConfigureMode 枚举定义
softAPSSIDPrefix SoftAPMode 模式下 SoftAP 的 SSID 前缀或全名。默认前缀为:XPG-GAgent-,SDK 以此判断手机当前是否连上了设备的 SoftAP 热点。AirLink配置时该参数无意义,传null即可
timeout 配置的超时时间。SDK默认执行的超时时间为30秒。在超时时间内如果无法配置和绑定会回调配网失败
types 待配置的模组类型,是GizWifiGAgentType 枚举数组。 GizWifiGAgentType定义了 SDK 支持的所有模组类型,还定义了一个GizGAgentOther枚举值,用于开发者使用自己的配置库进行设备配置,此时参数传GizGAgentOther即可。 此参数传null、空数组或无有效枚举值,则默认为乐鑫模组

回调

如果调用startWithAppInfo接口时指定了待筛选的 productInfo 集合,如果设备被成功配置到路由上并绑定成功,但此设备的productKey不在productInfo指定的productKey中, 会返回配置成功,但不会出现在设备列表中。

public  void didSetDeviceOnboarding(GizWifiErrorCode result, GizWifiDevice device);

回调参数

属性 描述
result 详细见 GizWifiErrorCode 枚举定义,GIZ_SDK_SUCCESS 表示成功,其他为失败。失败时,其他参数为 null
device 配网成功的设备

代码示例

// airlink配置
GizWifiSDK.sharedInstance().setListener(mListener);
List<GizWifiGAgentType> types = new ArrayList();
types.add(GizWifiGAgentType.GizGAgentESP); GizWifiSDK.sharedInstance().setDeviceOnboardingDeploy("your_ssid", "your_key", GizWifiConfigureMode.GizWifiAirLink, null, 60, types);

// softap配置
GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().setDeviceOnboardingDeploy("your_ssid", "your_key", GizWifiConfigureMode.GizWifiSoftAP, "XPG-GAgent-DF4A", 60, null);

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
  @Override
  public  void didSetDeviceOnboarding(GizWifiErrorCode result, GizWifiDevice device) {
    if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
                // 配置成功
    } else {
                // 配置失败
    }
  }
};

[setDeviceOnboarding]

持续获取局域网内未绑定的设备, 直到timeout结束

定义

public void setDeviceOnboarding(int timeout);

参数

属性名 描述
timeout 获取局域网未绑定设备的超时时间;设备列表每次发生变化就会回调一次,到达超时时间会回调GIZ_SDK_ONBOARDING_STOPPED表示获取设备结束

回调

public void didSetDeviceOnboarding(GizWifiErrorCode result, List<GizWifiDevice> devices);

回调参数

属性名 描述
result 配置成功或失败。如果配置失败,其他参数为nil
devices 局域网未绑定的设备列表

代码示例

GizWifiSDK.sharedInstance().setListener(mListener);
List<GizWifiGAgentType> types = new ArrayList();
GizWifiSDK.sharedInstance().setDeviceOnboarding(10);

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
  @Override
  public void didSetDeviceOnboarding(GizWifiErrorCode result, List<GizWifiDevice> devices) {
    if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
                // 配置成功
    } else {
                // 配置失败
    }
  }
};

[stopDeviceOnboarding]

停止设备配网,停止后didSetDeviceOnboarding回调中返回的错误码为GIZ_SDK_ONBOARDING_STOPPED

定义

public void stopDeviceOnboarding();

回调

//停止配置设备回调
public void didSetDeviceOnboarding(GizWifiErrorCode result, GizWifiDevice device);
//停止持续获取局域网未绑定设备回调
public void didSetDeviceOnboarding(GizWifiErrorCode result, List<GizWifiDevice> devices);

回调参数

见【setDeviceOnboardingDeploy】, 【setDeviceOnboarding】

代码示例

// airlink配置
GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().stopDeviceOnboarding();

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
  @Override
  public void didSetDeviceOnboarding(GizWifiErrorCode result, GizWifiDevice device) {
    if (result == GizWifiErrorCode.GIZ_SDK_ONBOARDING_STOPPED) {
                // 配置终止
    }
  }

  public void didSetDeviceOnboarding(GizWifiErrorCode result, List<GizWifiDevice> devices) {
    if (result == GizWifiErrorCode.GIZ_SDK_ONBOARDING_STOPPED) {
                // 配置终止
    }
  }
};

[getSSIDList]

在 Soft-AP 模式时,获得设备的 SSID 列表。SSID列表通过异步回调方式返回

定义

public void getSSIDList()

回调

public void didGetSSIDList(GizWifiErrorCode result, List<GizWifiSSID> ssidInfoList)

回调参数

属性名 描述
result 详细见 GizWifiErrorCode 枚举定义。GIZ_SDK_SUCCESS 表示成功,其他为失败。失败时,ssidInfoList为null
ssidInfoList 由 GizWifiSSID 实例组成的 SSID 信号列表

代码示例

GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().getSSIDList();

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
  @Override
  public void didGetSSIDList(GizWifiErrorCode result, List<GizWifiSSID> ssidInfoList) {
    if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
                // 获取成功
    } else {
                // 获取失败
    }
  }
};

[getBoundDevices]

获取绑定设备列表。在不同的网络环境下,有不同的处理: 当手机能访问外网时,该接口会向云端发起获取绑定设备列表请求; 当手机不能访问外网时,局域网设备是实时发现的,但会保留之前已经获取过的绑定设备; 手机处于无网模式时,局域网未绑定设备会消失,但会保留之前已经获取过的绑定设备; 用户未登录时,无法获取到绑定设备列表。

定义

public void getBoundDevices(List<String> specialProductKey);

参数

属性名 描述
specialProductKeys 指定获取的设备productKey,这个参数只有在启动接口没传productInfo时才会生效

回调

以下触发场景触发回调: getBoundDevices接口调用时触发该回调,错误码代表云端请求状态,设备列表是绑定设备与局域网设备合并之后的集合; 设备列表发生变化时会主动上报时触发该回调,此时错误码GIZ_SDK_SUCCESS,设备列表仍然是合并过的集合。

public  void didDiscovered(GizWifiErrorCode result, List<GizWifiDevice> deviceList)

回调参数

属性名 描述
result 详细见 GizWifiErrorCode 枚举定义,GIZ_SDK_SUCCESS 表示成功,其他为失败。失败时,deviceList 为非 null集合
deviceList GizWifiDevice 实例组成的数组,该参数将只返回根据指定productKey筛选过的设备集合。productKey在 getBoundDevices接口调用时指定

代码示例

GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().getBoundDevices(null); 

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
  @Override
  public  void didDiscovered(GizWifiErrorCode result, List<GizWifiDevice> deviceList) {
    // 提示错误原因
    if(result != GizWifiErrorCode.GIZ_SDK_SUCCESS) {
        Log.d("", "result: " + result.name());
    }
    // 显示设备列表
    Log.d("", "discovered deviceList: " + deviceList);
  }
};

[bindDevice]

绑定远端设备到服务器

定义

public void bindDevice(String mac, String productKey, String alias, RequestListener<OpenApiResult<String>> requestListener);

参数

属性名 描述
mac 待绑定设备的mac
productKey 待绑定设备的productKey
alias 待绑定设备的别名
requestListener 绑定结果回调

回调参数

属性名 描述
result OpenApiResult类型,详细见OpenApiResult定义

代码示例

Log.d("Hello world!");

[bindDeviceByQRCode]

根据二维码绑定设备到服务器

定义

public void bindDeviceByQRCode(String QRContent, RequestListener<OpenApiResult<String>> requestListener);

参数

属性名 描述
QRContent 二维码内容。二维码需联系机智云FAE提供
requestListener 绑定设备回调

回调参数

属性名 描述
result OpenApiResult类型,详细见OpenApiResult定义

代码示例

 Log.d("Hello world!");

[unbindDevices]

从服务器解绑设备

定义

public void unbindDevices(List<GizWifiDevice> devices, RequestListener<OpenApiResult<List<BindDeviceResult>>> requestListener);

参数

属性名 描述
devices 待解绑的设备对象集合
requestListener 解绑设备回调

回调参数

属性名 描述
result OpenApiResult类型,详细见OpenApiResult定义

代码示例

 Log.d("Hello world!");

[deviceSafetyRegister]

设备安全注册接口。向云端加密注册设备,注册成功时返回设备did,同时如果用户已登录则会自动绑定已注册成功的设备,绑定成功的设备会主动触发设备列表更新。需注意,安全注册需要productKey和productSecret,这两个信息应在startWithAppInfo接口参数productInfo的指定范围内

定义

public void deviceSafetyRegister(GizWifiDevice gateway, String productKey, List<ConcurrentHashMap<String, String>> devicesInfo);

参数

参数 描述
gateway 设备的代理网关,此参数选填。若要注册的设备不需要代理网关,此参数可传null
productKey 设备的产品类型识别码,此参数必填。若填入的productKey不在启动接口参数productInfo的指定范围将不会向云端注册
devicesInfo 要注册的设备信息,可同时传多组设备信息,格式如下: [{mac:"xxx",meshID:"xxx",alias:"xxx",authCode:"xxx"}, ...] mac 设备物理唯一标识,最大32字符长度,字符串类型。必填 meshID 设备组网ID,最大256字符长度。必填 alias 设备别名,最大128字符长度,String类型。选填 authCode 设备注册的授权码,32字符长度,由开发者自定义生成,字符串类型。选填

回调

public void didDeviceSafetyRegister(List<ConcurrentHashMap<String, String>> successDevices, List<ConcurrentHashMap<String, Object>> failedDevices)

回调参数

参数 描述
successDevices 注册成功的设备信息,null表示无注册成功的设备。字典格式如下: [{mac:"xxx", productKey:"xxx", did:"xxx"}, ...] mac 注册成功的设备mac,字符串类型 productKey 注册成功的设备产品类型标识,字符串类型 did 注册成功的设备唯一标识,字符串类型
failedDevices 注册失败的设备信息,null表示无注册失败的设备。字典格式如下: [{mac:"xxx", productKey:"xxx", errorCode:xxx}, ...] mac 注册失败的设备mac,字符串类型 productKey 注册失败的设备产品类型标识,字符串类型 errorCode 失败原因,GizWifiErrorCode枚举类型

代码示例

GizWifiSDK.sharedInstance().setListener(mListener);

List<ConcurrentHashMap<String, String>> deviceInfos = new ArrayList
<ConcurrentHashMap<String, String>> ();  
ConcurrentHashMap<String, String> deviceInfo = new ConcurrentHashMap
<String, String> ();
deviceInfo.put("mac", "device_mac");
deviceInfo.put("meshID", "your_meshID");
deviceInfo.put("alias", "your_alias");
deviceInfo.put("authCode", "your_authCode");
deviceInfos.add(deviceInfo);

//设备安全注册接口。mDevice 是设备的代理网关
GizWifiSDK.sharedInstance().deviceSafetyRegister(mDevice, "device_productKey", deviceInfos);

// 实现回调
GizWifiSDKListener mListener=new GizWifiSDKListener() {
    @Override
    public void didDeviceSafetyRegister(List<ConcurrentHashMap<String, String>> successDevices, List<ConcurrentHashMap<String,Object>> failedDevices) {
        //接收注册成功和注册失败的设备
    }
};

[deviceSafetyUnbind]

设备安全解绑接口。此接口会在云端把设备的所有关联用户都解绑,可同时解绑多个相同产品类型的设备。但如果设备的产品类型(productKey)不一致将不会解绑任何设备

定义

public void deviceSafetyUnbind(List<ConcurrentHashMap<String, Object>> devicesInfo)

参数

属性名 描述
devicesInfo 要解绑的设备信息,格式:{"device": device, "authCode": "xxx"},device为GizWifiDevice对象,authCode为授权码。authCode不是必填参数,若没有授权码则不需要填写此字段

回调

public void didDeviceSafetyUnbind(List<ConcurrentHashMap<String, Object>> failedDevices)

回调参数

属性名 描述
failedDevices failedDevices 解绑失败的设备。字典格式如下:[{device:xxx, errorCode:xxx}, ...]device 解绑失败的设备对象,GizWifiDevice类型errorCode 失败的错误原因,GizWifiErrorCode类型。可在此看到设备解绑的详细错误原因

代码示例

GizWifiSDK.sharedInstance().setListener(mListener);

List<ConcurrentHashMap<String, Object>> deviceInfos = new ArrayList
<ConcurrentHashMap<String, Object>> ();  
ConcurrentHashMap<String, Object> deviceInfo = new ConcurrentHashMap<String, Object> ();
deviceInfo.put("device", device);
deviceInfo.put("authCode", "your_authCode");
deviceInfos.add(deviceInfo);

// 设备安全解绑接口
GizWifiSDK.sharedInstance().deviceSafetyUnbind(deviceInfos);

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
@Override
    public void didDeviceSafetyUnbind(List<ConcurrentHashMap<String, Object>> failedDevices) {
        //接收解绑失败的设备
    }
};

[setUid]

设置用户uid和token

定义

public void setUid(String uid, String token);

参数

属性名 描述
uid 在登录或注册成功获取到的用户唯一id
token 在登录或注册成功获取到的用户token

回调

回调参数

代码示例

GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().setUid("your_uid", "your_token");
// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
};

[registerUser]

用户注册。 需指定用户类型注册。手机用户的用户名是手机号,邮箱用户的用户名是邮箱、普通用户的用户名可以是普通用户名; 注意:如果邮箱注册启用了邮箱激活,会返回注册成功,但不会返回uid、token

定义

public void registerUser(String username, String password, String verifyCode, GizUserAccountType accountType, RequestListener<OpenApiResult<OpenApiLoginResult>> requestListener);

参数

属性名 描述
username 注册用户名(可以是手机号、邮箱或普通用户名)
password 注册密码
code 手机短信验证码。短信验证码注册后就失效了,不能被再次使用
accountType 用户类型,详细见 GizUserAccountType 枚举定义。注册手机号时,此参数指定为手机用户,注册邮箱时,此参数指定为邮箱用户,注册普通用户名时,此参数指定为普通用户
requestListener 注册用户的回调

回调参数

属性名 描述
result OpenApiResult类型,详细见OpenApiResult和OpenApiLoginResult定义

代码示例

Log.d("Hello world!");

[userLogin]

用户登录。需使用注册成功的用户名、密码进行登录,可以是手机用户名、邮箱用户名或普通用户名

定义

public void userLogin(String username, String password, RequestListener<OpenApiResult<OpenApiLoginResult>> requestListener);

参数

属性名 描述
username 注册成功的用户名
password 注册成功的用户密码
requestListener 登录结果回调

回调参数

属性名 描述
result OpenApiResult类型,详细见OpenApiResult和OpenApiLoginResult定义

代码示例

 Log.d("Hello world!");

[dynamicLogin]

动态验证码登录。登录用户名为手机号,以手机收到的登录验证码登录

定义

public void dynamicLogin(String phone, String code, RequestListener<OpenApiResult<OpenApiLoginResult>> requestListener);

参数

属性名 描述
phone 注册用户名(可以是手机号、邮箱或普通用户名)
code 手机短信验证码。短信验证码注册后就失效了,不能被再次使用
requestListener 登录结果回调

回调参数

属性名 描述
result OpenApiResult类型,详细见OpenApiResult和OpenApiLoginResult定义

代码示例

Log.d("Hello world!");

[userLoginAnonymous]

匿名登录。匿名方式登录,不需要注册用户账号。

定义

public void userLoginAnonymous(RequestListener<OpenApiResult<OpenApiLoginResult>> requestListener);

回调参数

属性名 描述
result OpenApiResult类型,详细见OpenApiResult和OpenApiLoginResult定义

代码示例

Log.d("Hello world!");

[userLoginWithThirdAccount]

第三方账号登录(第三方接口登录方式)

定义

public void userLoginWithThirdAccount(GizThirdAccountType thirdAccountType, String uid, String token, String tokenSecret, RequestListener<OpenApiResult<OpenApiLoginResult>> requestListener);

参数

属性名 描述
thirdAccountType 第三方账号类型,详细见 GizThirdAccountType 枚举定义
uid 通过第三方平台 api 方式登录后得到的 uid
token 通过第三方平台api方式 登录后得到的 token
tokenSecret 推特账号登录时需要通过推特平台api方式得到此参数,其他第三方账号此参数可传null

回调参数

属性名 描述
result OpenApiResult类型,详细见OpenApiResult和OpenApiLoginResult定义

代码示例

Log.d("Hello world!");

[transAnonymousUser]

匿名用户转换,可转换为手机用户或者普通用户。注意,待转换的帐号必须是还未注册过的

定义

public void transAnonymousUser(String username, String password, String code, GizUserAccountType accountType, RequestListener<OpenApiResult<EmptyBean>> requestListener);

参数

属性名 描述
username 待转换的普通账号或手机号
password 转换后的帐号密码
code 转换为手机用户时要使用的手机短信验证码
accountType 指定待转换的用户类型,详细见 GizThirdAccountType 枚举定义。待转换的用户名是手机号时,此参数指定为GizUserPhone,待转换用户名是普通账号时,此参数指定为GizUserNormal
requestListener 匿名转换结果回调

回调参数

属性名 描述
result OpenApiResult类型,详细见OpenApiResult和EmptyBean定义

代码示例

// 匿名转手机用户
GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().transAnonymousUser("your_token", "your_phone_number", "your_password", "your_verify_code", GizUserAccountType. GizUserPhone);

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
  @Override
  public  void didTransAnonymousUser(GizWifiErrorCode result) {
    if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
    // 转换成功
    } else {
    // 转换失败
    }
  }
};

[userLogout]

注销用户,会将用户已经订阅的设备取消订阅,并删除远程设备列表

定义

public void userLogout();

回调

public void didUserLogout(GizWifiErrorCode result);

回调参数

属性名 描述
result 详细见 GizWifiErrorCode 枚举定义。GIZ_SDK_SUCCESS 表示成功,其他为失败

代码示例

GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().setUid("your_uid", "your_token");
// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
  public void didUserLogout(GizWifiErrorCode result) {
     if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
    // 修改成功
    } else {
    // 修改失败
    }
  }
};

[changeUserPassword]

修改用户密码

定义

public void changeUserPassword(String oldPassword, String newPassword, RequestListener<OpenApiResult<EmptyBean>> requestListener);

参数

属性名 描述
oldPassword 旧密码
newPassword 新密码
requestListener 修改密码结果回调

回调参数

属性名 描述
result OpenApiResult类型,详细见OpenApiResult和EmptyBean定义

代码示例

Log.d("Hello world!");

[changePhoneOrEmail]

修改账号,只能支持修改手机号或邮箱

定义

public void changePhoneOrEmail(String username, String code, GizUserAccountType accountType, RequestListener<OpenApiResult<EmptyBean>> requestListener);

参数

属性名 描述
username 手机号/邮箱
code 修改手机号,这里需要传验证码
accountType 账号类型:传GizUserPhone/GizUserEmail
requestListener 修改账号结果回调

回调参数

属性名 描述
result OpenApiResult类型,详细见OpenApiResult和EmptyBean定义

代码示例

 Log.d("Hello world!");

[resetPassword]

重置密码。手机号重置密码时通过手机短信验证码重置,邮箱重置密码时需通过邮箱密码重置链接重置

定义

public void resetPassword(String username, String code, String newPassword, GizUserAccountType accountType, RequestListener<OpenApiResult<EmptyBean>> requestListener);

参数

属性名 描述
username 待重置密码的手机号或邮箱
code 重置手机用户密码时需要使用手机短信验证码(通过 requestSendPhoneSMSCode 方法获取)
newPassword 新密码。邮箱重置密码时不需要填充密码,可指定为null
accountType 用户类型,详细见 GizThirdAccountType 枚举定义。待重置密码的用户名是手机号时,此参数指定为手机用户,待重置密码的用户名是邮箱时,此参数指定为邮箱用户
requestListener 重置密码结果回调

回调参数

属性名 描述
result OpenApiResult类型,详细见OpenApiResult和EmptyBean定义

代码示例

Log.d("Hello world!");

[getUserInfo]

获取用户信息

定义

public void getUserInfo(RequestListener<OpenApiResult<GizOpenApiUser>> requestListener);

参数

属性名 描述
requestListener 获取用户信息结果回调

回调参数

属性名 描述
result OpenApiResult>类型,详细见OpenApiResult和GizOpenApiUser定义

代码示例

Log.d("Hello world!");

[changeUserInfo]

修改用户个人信息。

定义

public void changeUserInfo(GizOpenApiUser additionalInfo, RequestListener<OpenApiResult<GizOpenApiUser>> requestListener);

参数

属性名 描述
additionalInfo 待修改的个人信息,详细见 GizOpenApiUser 类定义。
requestListener 修改用户个人信息回调

回调参数

属性名 描述
result OpenApiResult>类型,详细见OpenApiResult和GizOpenApiUser定义

代码示例

GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().changeUserInfo("your_token", "your_phone_number", "your_verify_code", GizUserAccountType.GizUserPhone, null);

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
  @Override
  public  void didChangeUserInfo(GizWifiErrorCode result) {
    if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
    // 修改成功
    } else {
    // 修改失败
    }
  }
};

[requestSendPhoneSMSCode]

通过手机号请求短信验证码

定义

public void requestSendPhoneSMSCode(String phone, RequestListener<OpenApiResult<EmptyBean>> requestListener);

参数

属性名 描述
phone 手机号

回调参数

属性名 描述
result OpenApiResult类型,详细见OpenApiResult和EmptyBean定义

代码示例

GizWifiSDK.sharedInstance().setListener(mListener);
GizWifiSDK.sharedInstance().requestSendPhoneSMSCode ("your_app_secret", "your_phone_number");

// 实现回调
GizWifiSDKListener mListener = new GizWifiSDKListener() {
  @Override
  public void didRequestSendPhoneSMSCode(GizWifiErrorCode result, String token) {
    if (result == GizWifiErrorCode.GIZ_SDK_SUCCESS) {
    // 请求成功
    } else {
    // 请求失败
    }
  }
};

[setLogLevel]

设置日志输出级别。该级别指日志在调试终端和log文件的输出级别,默认是全部输出的。 日志文件存放在SD卡目录下:GizWifiSDK/包名/GizSDKLog/

定义

public void setLogLevel(GizLogPrintLevel logLevel)

参数

属性名 描述
logLevel 日志输出级别,参考 GizLogPrintLevel 定义

代码示例

GizWifiSDK.sharedInstance().setLogLevel(GizLogPrintLevel.GizLogPrintAll);

[encryptLog]

设置日志加密。

定义

public void encryptLog();

代码示例

GizWifiSDK.sharedInstance().encryptLog();

[channelIDBind]

绑定推送的ID到当前用户下,以接收设备的通知事件

定义

public void channelIDBind(String channelID, String alias, GizPushType pushType, RequestListener<OpenApiResult<EmptyBean>> requestListener);

参数

属性名 描述
channelID 从第三方推送平台获取的推送ID
alias 推送别名,只在极光推送中产生作用
pushType 推送类型,详细见 GizPushType 枚举定义
requestListener 绑定推送id回调

回调参数

属性名 描述
result OpenApiResult类型,详细见OpenApiResult和EmptyBean定义

代码示例

Log.d("Hello world!");

[channelIDUnBind]

解绑推送ID与当前用户的绑定关系,以解除接收设备的通知事件

定义

public void channelIDUnBind(String channelID, RequestListener<OpenApiResult<EmptyBean>> requestListener);

参数

属性名 描述
channelID 从第三方推送平台获取的推送ID
requestListener 解绑推送id回调

回调参数

属性名 描述
result 详细见 GizWifiErrorCode 枚举定义。result.error.code 为 GIZ_SDK_SUCCESS 表示成功,其他为失败。失败时,其他回调参数为 nil

代码示例

// 解绑推送ID
Log.d("Hello world!");

[userFeedback]

用户信息反馈接口。此接口无回调,调用后就会上传信息。目前信息上传后,需要联系机智云FAE查看

定义

public void userFeedback(String contactInfo, String feedbackInfo, boolean sendLog);

参数

属性名 描述
contactInfo 用户的联系方式。此参数为选填
feedbackInfo 用户反馈的信息。此参数为选填
sendLog 是否发送问题日志。如果前面两个参数都没填,则默认发送问题日志

代码示例

GizWifiSDK.sharedInstance().userFeedback("your_phone", "your_message", true);

[getCurrentCloudService]

查询当前使用的云服务域名信息

定义

接口还未完成

[getUserTerm]

获取用户协议内容

定义

public void getUserTerm(GizUserTermType termType, RequestListener<OpenApiResult<String>> requestListener);

参数

属性名 描述
termType 协议类型, 详细见GizUserTermType枚举
requestListener 请求回调

回调参数

属性名 描述
result OpenApiResult类型,详细见OpenApiResult和String定义

代码示例

Log.d("Hello world!");

[checkUserTerm]

检查用户协议

定义

public void checkUserTerm(RequestListener<OpenApiResult<GizUserTerm>> requestListener);

参数

属性名 描述
requestListener 检查用户协议请求回调

回调参数

属性名 描述
result OpenApiResult类型,详细见OpenApiResult和GizUserTerm定义

代码示例

Log.d("Hello world!");

[confirmUserTerm]

确认用户协议

定义

public void confirmUserTerm(List<GizUserTermType> termTypes, RequestListener<OpenApiResult<String>> requestListener);

参数

属性名 描述
termTypes 协议类型数组
requestListener 确认用户协议请求回调

回调参数

属性名 描述
result OpenApiResult类型,详细见OpenApiResult和String定义

代码示例

Log.d("Hello world!");

results matching ""

    No results matching ""