更新时间:2025-07-22 07:08:50下载pdf
系统要求:蓝牙使用需要安卓 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 SDK 未提供 API,您可自行检测。
参数说明
| 参数名 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
mode |
ActivatorMode |
是 | 配网模式 |
代码示例
BLEWIFIActivator blewifiActivator = (BLEWIFIActivator) ActivatorService.activator(ActivatorMode.BLE_WIFI);
参数说明
| 参数名 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
mode |
DiscoveryMode |
是 | 扫描模式 |
代码示例
IDiscovery iDiscovery = ActivatorService.discovery(DiscoveryMode.BLE_WIFI);
代码示例
DiscoveryParams.Builder builder = new DiscoveryParams.Builder();
builder.setTimeout(600_000);
DiscoveryParams discoveryParams = new DiscoveryParams(builder);
iDiscovery.setParams(discoveryParams);
参数说明
IBluetoothDevice 数据模型说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| getId | 函数 | 获取蓝牙设备的 ID |
| getName | 函数 | 获取蓝牙设备的名称 |
| getData | 函数 | 获取设备数据 |
| getConfigType | 函数 | 获取配置类型
|
| getAddress | 函数 | 获取设备的蓝牙地址 |
| getDeviceType | 函数 | 获取设备类型 |
| getUUID | 函数 | 获取设备的 UUID |
| getMAC | 函数 | 获取设备的 MAC 地址 |
| getProductId | 函数 | 获取设备的产品 ID |
| isBind | 函数 | 判断设备是否已绑定 |
| getFlag | 函数 |
|
getDeviceType 表示待配网设备类型
| getDeviceType 值 | getConfigType | 设备类型 |
|---|---|---|
| 200 | config_type_single | 蓝牙设备 |
| 300 | config_type_single | 蓝牙设备 |
| 301 | config_type_wifi | Wi-Fi + 蓝牙双模设备 |
| 304 | config_type_wifi | Wi-Fi + 蓝牙双模设备(支持蓝牙兜底配网) |
| 400 | config_type_single | 蓝牙设备 |
| 401 | config_type_wifi | Wi-Fi + 蓝牙双模设备 |
| 404 | config_type_wifi | Wi-Fi + 蓝牙双模设备(支持蓝牙兜底配网) |
| 代码示例 |
IDiscovery iDiscovery = ActivatorService.discovery(DiscoveryMode.BLE_WIFI);
iDiscovery.setListener(new IDiscoveryListener() {
@Override
public void didDiscover(@NonNull IDiscoveryDevice iDiscoveryDevice) {
if (iDiscoveryDevice instanceof IBluetoothDevice){
((IBluetoothDevice) iDiscoveryDevice).getAddress();
((IBluetoothDevice) iDiscoveryDevice).getId();
((IBluetoothDevice) iDiscoveryDevice).getDeviceType();
}
}
});
//开始扫描
iDiscovery.startDiscovery();
//停止扫描
iDiscovery.stopDiscovery();
从扫描监听结果中,获取相关参数。
参数说明
| 参数名 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| address | String | 是 | 蓝牙设备的地址 |
| assetId | String | 是 | 设备的资产或空间 ID |
| token | String | 是 | 设备的令牌 |
| pwd | String | 否 | Wi-Fi 密码 |
| uuid | String | 是 | 设备的 UUID |
| ssid | String | 否 | Wi-Fi 的 SSID |
| mac | String | 否 | 设备的 MAC 地址 |
| time | long | 否 | 激活超时时间(单位:毫秒) |
| phase1Timeout | long | 否 | 设备连云激活配网超时时长,默认:60000,单位:ms |
| onlyConnectBle | Boolean | 否 | 仅蓝牙连接激活,默认:false |
BLEWIFIActivatorParams params = new BLEWIFIActivatorParams.Builder()
.setAddress("address")
.setAssetId("assetId")
.setToken("token")
.setPwd("pwd")
.setUuid("uuid")
.setSsid("ssid")
.setMac("mac")
.setTimeout(time)
.build();
blewifiActivator.setParams(params);
代码示例
blewifiActivator.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: ");
}
});
// 新增增强配网监听,旧版本监听继续兼容
blewifiActivator.setListener(new IExtMultiModeActivatorListener() {
@Override
public void onActivatorStatePauseCallback(@NonNull String uuid, int configStage, int status) {
}
@Override
public void onSuccess(@Nullable IDevice iDevice) {
}
@Override
public void onError(@NonNull String s, @NonNull String s1) {
}
});
onActivatorStatePauseCallback 回调参数说明:
配网阶段 configStage |
说明 | 配网阶段状态 status |
|---|---|---|
| 0 | 配网阶段激活 |
|
| 1 | 代理激活阶段 |
|
| 2 | 联网阶段 |
|
| 3 | 激活阶段 |
|
该方法用于开始设备配对操作。
代码示例
blewifiActivator.start();
代码示例
blewifiActivator.stop();
代码示例
blewifiActivator.destroy();
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈