API and Version Notes
Applies to version 1.4.12.
SDK Management
| API | Return value / purpose |
|---|---|
GizSDKManager.getConfiguration() | GizConfiguration, current SDK configuration |
GizSDKManager.isRegistered() | Boolean, initialization state |
GizSDKManager.deregister() | Unit, unregister and release SDK resources |
GizSDKManager.setDebug(debug) | Unit, configure debug logging |
GizSDKManager.getRegisteredDevice(id) | GizDevice?, lookup by SDK device ID |
GizSDKManager.getProductDataPointConfig(productKey) | Suspending, returns String?; may be null on failure |
GizSDKManager.cleanCache() | Suspending, returns Result<Unit>; also clears offline product configuration |
Device Lists and Scanning
Import the extension functions from their respective modules.
import com.gizwits.smart.sdk.GizSDKManager
import com.gizwits.smart.sdk.mqtt.queryBoundDevices
import com.gizwits.smart.sdk.mqtt.refreshBoundDeviceList
import com.gizwits.smart.sdk.bluetooth.subscribeBleScanError
// Call in a coroutine. Falls back to cached devices on request failure,
// and returns an empty list when there is no active user session.
val boundDevices = GizSDKManager.queryBoundDevices()
// Trigger a refresh; observe subscribeBoundDeviceList() for results.
GizSDKManager.refreshBoundDeviceList()subscribeBleScanError() returns Flow<GizConnectException>. See event listeners.
Capabilities, Devices and Users
bleCapability, lanCapability, and mqttCapability are Kotlin extension properties from com.gizwits.smart.sdk.bluetooth, .lan, and .mqtt. Their common interface is BaseCapability.
| API | Notes |
|---|---|
capability.connectAsync() | Non-suspending; observe state streams for the connection result |
capability.getStatus() / subscribeStatus() | CapacityStatus enum; do not compare directly with integers |
capability.getIsLogin() / subscribeIsLogin() | Handshake state |
capability.getDp(dps) | Required nullable JsonArray?; returns Result<JsonObject> |
device.subscribeProductName() / subscribeDeviceId() | Product name / cloud DID StateFlow |
device.subscribeDataPointConfig() / subscribeDevicePasscode() / subscribeBoundState() | Configuration, device passcode and binding streams |
device.startMusicalRhythm(sensitivity, mode, callback) | Suspending, returns Result<Unit>; requires recording permission and device support |
device.stopMusicalRhythm() | Returns Result<Unit> |
userManager.subscribeUserState() / getUserTokenStream() | User session and authorization streams |
userManager.bindDevice(mac, productKey, devAlias, remark) | Bind without a device object; returns Result<Unit> |
userManager.bindDeviceWithPasscode(deviceId, passcode) | Bind using DID and passcode; returns Result<Unit> |
userManager.unbindDevice(deviceId) / updateDeviceInfo(did, devAlias, remark) | Unbind or update by cloud DID |
Here userManager = GizSDKManager.getUserManager(). Call suspending functions in a coroutine and handle results with result.isSuccess, onSuccess, or onFailure.
Provisioning and Module Profiles
- BLE and AP provisioning use seconds for
timeoutand require an explicitbindWithUidargument. - For an AI module that establishes its own cloud binding, enable
bindWithUidand authorize the user before provisioning. ProductInfoStruct.cmbDeviceTypeIdenables China Mobile AiJia CMB module discovery.GizBleModuleProfileincludesbleModuleVariantandsupport5GConfig. Protocol selection follows advertisements; 5 GHz provisioning is not supported by every module.- AirLink uses
GizESPTouchSmartConfig.provideWiFiCredentialsWithAirLink(context, ssid, password, timeout, productKeys, processHandler)fromcom.gizwits.smart.sdk.esptouch, returningResult<DeviceRegistrationInfo?>.timeoutis in seconds, andproductKeysfilters cloud confirmation. Cancel withstopProvideWiFiCredentialsWithAirLink(). This API has nobindWithUidargument.