更新记录

1.0.1(2024-07-12)

  1. 添加设备accessToken 获取,绑定设备,创建、授权子账户,S2V智能摄像机联网等操作功能
  2. 获取已绑定与未绑定设备列表,lot设备预警回调接口

平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 12.0 armeabi-v7a:支持,arm64-v8a:未测试,x86:未测试 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


lc_device_uniapp

介绍

Uniapp 调用 uniplugin_lcdevice-release.aar 插件,实现操作乐橙设备功能

软件架构

安装教程

  1. 直接引入项目即可

使用说明

  1. 插件目录结构

    输入图片说明

  2. package.json配置

    {
    "name": "乐橙设备操作",
    "id": "lcdevice-module",
    "version": "v1.0.2024.06.16",
    "description": "乐橙设备插件,联系QQ:1426429456@qq.com",
    "_dp_type": "nativeplugin",
    "_dp_nativeplugin": {
        "android": {
            "plugins": [{
                    "type": "module",
                    "name": "lcdevice-module",
                    "class": "com.example.uniplugin_lcdevice.LCDeviceModule"
                }
            ],
            "dependencies": [
                "androidx.appcompat:appcompat:1.0.0-alpha1"
            ],
            "integrateType": "aar",
            "minSdkVersion": "21",
            "abis": [
                        "armeabi-v7a"
                    ],
    
            "useAndroidX": true,
            "permissions": [
                            "android.permission.REBOOT",
                            "android.permission.SHUTDOWN",
                            "android.permission.DEVICE_POWER",
                            "android.permission.READ_EXTERNAL_STORAGE",
                            "android.permission.WRITE_EXTERNAL_STORAG",
                            "android.permission.WRITE_SETTINGS",
                            "android.permission.BLUETOOTH_CONNECT",
                            "android.permission.BLUETOOTH_SCAN"
                        ]
    
        }
    }
    }
  3. 运行效果

输入图片说明

接口文档

1. 获取管理员token

  • 说明 根据管理员账号appId和appSecret获取accessToken,appId和appSecret可以在控制台-我的应用-应用信息中找到

    注意
    1、获取到的管理员token有效期是3天,请在即将过期或者接口报错TK1002时重新获取,每个管理员token具备独立的3天生命周期,请勿频繁调用避免占用过多接口调用次数。
    2、获取到的管理员token超过2天但未满3天,此时再请求accessToken接口时,会返回新的管理员token,老token和新token生命周期相互独立,且都可以正常使用。

    • 方法名

accessToken

  • 参数
参数名 必填 类型 默认值 合法直 说明
appSecret string appSecret
appId string appId
  • 返回示例
    {"accessToken":"At_0000hz4f2902a9ec2f461c89fdb6f308","msg":"success"}
  • 返回参数说明
参数名 类型 说明
accessToken string 管理员token
msg string 返回消息

账户对接

创建子账号
  • 方法名

createSubAccount

  • 参数
参数名 必填 类型 默认值 合法直 说明
token string 管理员accessToken
account string 手机号或者邮箱
appSecret string appSecret
appId string appId
  • 返回示例
    
    {"token":"At_0000hz4f2902a9ec2f461c89fdb6f308","account":"1875*******54","openId":"","msg":"com.example.uniplugin_lcdevice.mobilecommon.AppConsume.BusinessException: SUB1010子账号创建失败,账号已存在。"}
*  返回参数说明 

|参数名|类型|说明|
|:-----  |:-----|-----                           
|accessToken |string|  管理员token |
|msg |string|  返回消息 |

###### 根据子账号获取openId

 * 方法名

`getOpenIdByAccount`

 * 参数

|参数名|必填|类型|默认值|合法直|说明|
|:-----  |:-----|:-----  |:-----|:----- |----- 
|token|是  |string|| |管理员accessToken  |
|account|是  |string ||| 手机号或者邮箱   |  
|appSecret |是  |string|| |appSecret   |
|appId |是  |string ||| appId    |

*  返回示例
```json
{"openId":"18959d97d8bd45a68aecba4bb1e564ae07","msg":"success"}
  • 返回参数说明
参数名 类型 说明
openId string 子账号Id
msg string 返回消息
获取子账号token
  • 方法名

getOpenIdByAccount

  • 参数
参数名 必填 类型 默认值 合法直 说明
token string 管理员accessToken
openId string 子账户ID
appSecret string appSecret
appId string appId
  • 返回示例
    
    {"accessToken":"St_0000hzc9c5fe669ef44e07ab596ef884","msg":"success"} 
*  返回参数说明 

|参数名|类型|说明|
|:-----  |:-----|-----                           
|accessToken |string|  子账号accessToken |
|msg |string|  返回消息 |

###### 添加子账号权限
* 说明
> 此接口目前只给设备授权配置权限(更多权限,下版本更新)

 * 方法名

`addPolicy`

 * 参数

|参数名|必填|类型|默认值|合法直|说明|
|:-----  |:-----|:-----  |:-----|:----- |----- 
|token|是  |string|| |管理员accessToken  |
|openId|是  |string ||| 子账户ID   |  
|appSecret |是  |string|| |appSecret   |
|appId |是  |string ||| appId    |
|deviceId |是  |string ||| 设备S/N    |

*  返回示例
无 data 返回
```json
{"code":"0","msg":"success"}
  • 返回参数说明
参数名 类型 说明
code string
msg string 返回消息

设备管理

绑定设备
  • 说明

    将设备绑定在指定账号下

    • 方法名

bindDevice

  • 参数
参数名 必填 类型 默认值 合法直 说明
token string 管理员accessToken
appSecret string appSecret
appId string appId
code string code统称为设备验证码,针对不同的场景传的code值也会不一样,如下:1、如果未修改过设备密码,则传设备底部标签中(或二维码中)8位数字的安全码;2、如果修改了设备密码,则传修改后的设备密码;3、如果未修改过设备密码,且该设备底部标签中(或二维码中)没有8位数字的安全码,则code值传空即可。 设备验证码
deviceId string 设备S/N
  • 返回示例
    
    {"data":"{\"msg\":\"操作成功。\",\"code\":\"0\"}","msg":"success"}
*  返回参数说明 

|参数名|类型|说明|
|:-----  |:-----|-----                           
|data |string| 返回数据  |
|msg |string|  返回消息 |

###### 解绑设备
* 说明
> 备注:1、设备解绑后,报警消息立即删除
    <br>2、云录像不会马上删除,而是过期自动删除
    <br>3、设备解绑时已开通的云存储套餐会自动返回开发者账号下,可以继承给该账号下其他设备
    <br>4、传subDeviceId解绑子设备时,是解除子设备和上层网关设备deviceId的关联关系,网关设备不会解绑

 * 方法名

`unBindDevice`

 * 参数

|参数名|必填|类型|默认值|合法直|说明|
|:-----  |:-----|:-----  |:-----|:----- |----- 
|token|是  |string|| |管理员accessToken  |
|appSecret |是  |string|| |appSecret   |
|appId |是  |string ||| appId    |
|deviceId |是  |string ||| 设备S/N    |
|productId |否  |string ||可通过listDeviceDetailsByIds、listDeviceDetailsByPage获取| 设备产品id,解绑 子设备 时必填    |
|subDeviceId |否  |string ||可通过listDeviceDetailsByIds、listDeviceDetailsByPage获取| 子设备序列号,解绑 子设备 时必填    |

*  返回示例
```json
{"data":"{\"msg\":\"操作成功。\",\"code\":\"0\"}","msg":"success"}
  • 返回参数说明
参数名 类型 说明
data string 返回数据
msg string 返回消息

设备配置

设备当前连接热点信息
  • 方法名

currentDeviceWifi

  • 参数
参数名 必填 类型 默认值 合法直 说明
token string 管理员accessToken
appSecret string appSecret
appId string appId
deviceId string 设备S/N
  • 返回示例
    
    {"data":"{\"intensity\":\"4\",\"ssid\":\"Redmi_B171\",\"linkEnable\":true}","msg":"success"}
*  返回参数说明 

|参数名|类型|说明|
|:-----  |:-----|-----                           
|data |string| 返回数据  |
|intensity |int| 强度,0最弱,5最强  |
|ssid |string| 当前连接的热点名称  |
|linkEnable |boolean| 是否连接了wifi,true:是,false:否  |
|msg |string|  返回消息 |

#### 设备查询

###### 分页查询设备详细信息

* 方法名

`listDeviceDetailsByPage`

 * 参数

|参数名|必填|类型|默认值|合法直|说明|
|:-----  |:-----|:-----  |:-----|:----- |----- 
|token|是  |string|| |管理员accessToken  |
|appSecret |是  |string|| |appSecret   |
|appId |是  |string ||| appId    |
|page |是  |int ||| 查询页码,从1开始    |
|pageSize |是  |int ||| 每页条目数,范围:1~50    |
|source |是  |string |bindAndShare|bind:获取绑定的设备 share:获取分享的设备 bindAndShare:获取绑定及分享的设备| 关系类型,子账号传该参数不起作用   |

*  返回示例
```json
{
    "data": "{\"count\":2,\"deviceList\":[{\"catalog\":\"\",\"source\":\"bind\",\"multiFlag\":false,\"deviceId\":\"8CF681FFFEF50FCF\",\"deviceName\":\"IOT-ZP1-CN-0FCF\",\"deviceStatus\":\"online\",\"accessType\":\"PaaS\",\"channelList\":[],\"p2pPort\":\"554\",\"encryptMode\":\"0\",\"tlsPrivatePort\":\"37778\",\"parentDeviceId\":\"59DAEACPSF00002\",\"brand\":\"lechange\",\"devicePassword\":\"lHo34HQePoBmv/KKnt6YHQ==\",\"playToken\":\"aFacsWGj36TPuTQnH9lSZlJ8fx2UOlKEjHVVWp2HYIZImeAWlPJQ5nXmRgjAeiZsahzQZSDm6IME4Wq2SsqLl63dQVxEupLYCUmYB7KCXzCPfPy2mnAuL2TeHavbUFjGJHRKr0z3JMGVkBW6g0/fPyR86Yl5BKx41HalyjzANYcxXwuvy9zO77UVc6wZsyYdJ44qr4bRORipS5M6kjgWc4c/G8i2h10mn9wqCIWwXYhCv5v7SDuD+fJfwRqvIzox0rNxmbtlvjbTjxZcKfLxtg==\",\"deviceUsername\":\"I9geFS1oQiWVr7MdrZOOoQ==\",\"expandChanNum\":\"\",\"parentProductId\":\"Z8vP1yHQ\",\"productId\":\"rQ1SMVkC\",\"trackFollowStatus\":\"\",\"httpPort\":\"80\",\"privatePort\":\"\",\"rtspPort\":\"554\",\"deviceVersion\":\"IR100_v1.2.0\",\"wifiConfigMode\":\"accessory\",\"deviceAbility\":\"\",\"port\":\"37777\",\"wifiConfigModeOptional\":false,\"defaultWifiConfigMode\":\"accessory\",\"lastOffLineTime\":\"\",\"tlsEnable\":false,\"deviceModel\":\"ZP1-CN\",\"hwId\":\"\",\"isSubDevice\":true,\"canBeUpgrade\":false},{\"subDeviceList\":[{\"subDeviceStatus\":\"online\",\"subDeviceProductId\":\"rQ1SMVkC\",\"subDeviceModel\":\"ZP1-CN\",\"subDeviceName\":\"IOT-ZP1-CN-0FCF\",\"subDeviceId\":\"8CF681FFFEF50FCF\"}],\"catalog\":\"\",\"source\":\"bind\",\"multiFlag\":false,\"deviceId\":\"59DAEACPSF00002\",\"deviceName\":\"ZG1-CN0002\",\"deviceStatus\":\"online\",\"accessType\":\"PaaS\",\"channelList\":[],\"p2pPort\":\"554\",\"encryptMode\":\"0\",\"tlsPrivatePort\":\"37778\",\"brand\":\"lechange\",\"devicePassword\":\"TEvUXDfdPAzoza3ypkBAKw==\",\"playToken\":\"CcexKkvMtRHs+OH4praQjLsIDtrAagNE41naRWFhOCyT+gA8qM4m4a2Y3D6Pen1F1jwuuU7m57Mdwk99TkaKbgnrAMxQZUeP0u+/MWVBphqkHis4xx+sc+OQIY5VJNqwA4JS2lfgszdnvWnfOQkglERL8Up1KBglqORLXJIQzWoVulMH9GW04/BtigkC6QqLFS+9gn9bNTot92KYnedFHNG2YJbAK9d7O/WJEDNpA2w=\",\"deviceUsername\":\"ZQrp2lsHu2fC1Ib9H+4i4g==\",\"expandChanNum\":\"\",\"productId\":\"Z8vP1yHQ\",\"trackFollowStatus\":\"\",\"httpPort\":\"80\",\"privatePort\":\"\",\"rtspPort\":\"554\",\"deviceVersion\":\"1.1.0\",\"wifiConfigMode\":\"lan,wifi\",\"deviceAbility\":\"\",\"port\":\"37777\",\"wifiConfigModeOptional\":false,\"defaultWifiConfigMode\":\"wifi\",\"lastOffLineTime\":\"20240604T181756Z\",\"tlsEnable\":false,\"deviceModel\":\"ZG1-CN\",\"hwId\":\"\",\"isSubDevice\":false,\"canBeUpgrade\":false}]}",
    "msg": "success"
}
  • 返回参数说明
参数名 类型 说明
data string 返回数据
msg string 返回消息

推送配置

设置报警回调地址
  • 方法名

setMessageCallback

  • 参数
参数名 必填 类型 默认值 合法直 说明
token string 管理员accessToken
appSecret string appSecret
appId string appId
status string "on","off" 是否订阅消息
callbackUrl int "" 消息回调URL status为on时,必填;status为off时,可为空; 开发者接收设备消息的地址,需要可以被外网访问
callbackFlag string "" alarm:设备告警消息推送;deviceStatus:设备上下线消息推送;iot:IoT物联网设备消息;numberstat:设备客流数据消息推送;faceAnalysis:设备人脸智能消息推送 回调类型标识,回调类型可选填以上的其中一个或者多个(中间用逗号分隔)。status为on时,必填;status为off时,可为空。
basePush string "2" "1":推送;"2":不推送 标示开发者账号下关联的乐橙APP设备消息是否推送
  • 返回示例
    {"data":"{\"msg\":\"操作成功。\",\"code\":\"0\"}","msg":"success"}
  • 返回参数说明
参数名 类型 说明
data string 返回数据
msg string 返回消息

LCOpenSDK

开始蓝牙配网
  • 说明

    备注:
    1、需要开启手机蓝牙
    2、需要开启手机定位和存储

输入图片说明

  • 方法名

startBleConfig

  • 参数
参数名 必填 类型 默认值 合法直 说明
deviceId string 设备序列号(S/N)
productId string 设备密码 (扫设备上二维码可获取)
ssid string wifi名称
wifiPwd string wifi密码
  • 返回示例
    {"data":"","msg":"success"}
  • 返回参数说明
参数名 类型 说明
data string 返回数据
msg string 返回消息

隐私、权限声明

1. 本插件需要申请的系统权限列表:

<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.VIBRATE"/> <uses-permission android:name="android.permission.READ_LOGS"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-feature android:name="android.hardware.camera.autofocus"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.GET_ACCOUNTS"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> <uses-permission android:name="android.permission.WAKE_LOCK"/> <uses-permission android:name="android.permission.FLASHLIGHT"/> <uses-feature android:name="android.hardware.camera"/> <uses-permission android:name="android.permission.WRITE_SETTINGS"/> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <uses-permission android:name="android.permission.BLUETOOTH_SCAN" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问