该内容对您有帮助吗?
是否更新时间:2022-04-25 02:11:57下载pdf
设备控制 UI 业务包是涂鸦智能设备控制面板的核心容器。在涂鸦安卓版智能生活 App SDK 的基础上,它提供了设备控制面板的加载和控制的接口封装,加速了应用开发过程。
设备控制 UI 业务包主要包括以下功能:
在 Android Studio 中建立您的工程,接入 智能生活 App SDK 和添加 UI 业务包框架。详情请参考 框架接入。
涂鸦设备控制 UI 业务包包含了开源框架 ReactNative,版本为 0.59.10。
若您的 Android 工程未集成 ReactNative,请按本文步骤集成设备控制业务包。
若您的 Android 工程已集成 ReactNative,需按下面步骤操作,以确定是否可集成设备控制业务包:
若您使用的智能生活 App SDK 版本等于大于 v3.32.5,那么业务包的版本也需要同步升级到 v3.32.5,否则会出现无法打开设备面板。
若均无法集成成功,则您无法接入集成设备控制业务包。
build.gradle 配置
dependencies {
api 'com.tuya.smart:tuyasmart-bizbundle-panel:3.34.5-9'
}
可选配置(根据面板功能,选择所需依赖):
阿里巴巴高德地图依赖项
应用发布到 Google Play 时,请务必去除此依赖。
api 'com.tuya.smart:tuyasmart-react-native-amap:3.31.0-rc.2'
implementation 'com.amap.api:search:7.9.0'
implementation 'com.amap.api:navi-3dmap:8.0.0_3dmap8.0.0'
谷歌地图依赖项
应用发布到中国大陆应用市场时,请务必去除此依赖。
api 'com.tuya.smart:tuyasmart-react-native-googlemap:3.31.5-rc.1'
api 'com.google.android.gms:play-services-maps:17.0.0'
腾讯 QQ 音乐登录模块依赖项
api project(':qqmusic')
api("com.tencent.yunxiaowei.dmsdk:core:2.3.0") {
exclude group: 'com.squareup.okhttp3', module: 'okhttp'
}
api("com.tencent.yunxiaowei.webviewsdk:webviewsdk:2.3.0") {
exclude group: 'com.squareup.okhttp3', module: 'okhttp'
}
混淆配置
# react-native
-keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip
-keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip
-keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters
# Do not strip any method/class that is annotated with @DoNotStrip
-keep @com.facebook.proguard.annotations.DoNotStrip class *
-keep @com.facebook.common.internal.DoNotStrip class *
-keepclassmembers class * {
@com.facebook.proguard.annotations.DoNotStrip *;
@com.facebook.common.internal.DoNotStrip *;
}
-keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * {
void set*(***);
*** get*();
}
-keep class * extends com.facebook.react.bridge.JavaScriptModule { *; }
-keep class * extends com.facebook.react.bridge.NativeModule { *; }
-keepclassmembers,includedescriptorclasses class * { native <methods>; }
-keepclassmembers class * { @com.facebook.react.uimanager.UIProp <fields>; }
-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp <methods>; }
-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactPropGroup <methods>; }
-dontwarn com.facebook.react.**
-keep,includedescriptorclasses class com.facebook.react.bridge.** { *; }
#高德地图
-dontwarn com.amap.**
-keep class com.amap.api.maps.** { *; }
-keep class com.autonavi.** { *; }
-keep class com.amap.api.trace.** { *; }
-keep class com.amap.api.navi.** { *; }
-keep class com.autonavi.** { *; }
-keep class com.amap.api.location.** { *; }
-keep class com.amap.api.fence.** { *; }
-keep class com.autonavi.aps.amapapi.model.** { *; }
-keep class com.amap.api.maps.model.** { *; }
-keep class com.amap.api.services.** { *; }
#Google Play Services
-keep class com.google.android.gms.common.** {*;}
-keep class com.google.android.gms.ads.identifier.** {*;}
-keepattributes Signature,*Annotation*,EnclosingMethod
-dontwarn com.google.android.gms.**
#MPAndroidChart
-keep class com.github.mikephil.charting.** { *; }
-dontwarn com.github.mikephil.charting.**
-keep class com.tuya.**.**{*;}
-dontwarn com.tuya.**.**
-keep,includedescriptorclasses class com.facebook.v8.** { *; }
根据设备 ID 进入对应设备面板页面。
接口说明
goPanelWithCheckAndTip(Activity activity, String devId)
参数说明
参数 | 说明 |
---|---|
activity | 当前页面 context |
devId | 设备 ID,可以通过智能生活 App SDK 接口获取 |
示例代码
AbsPanelCallerService service = MicroContext.getServiceManager().findServiceByInterface(AbsPanelCallerService.class.getName());
service.goPanelWithCheckAndTip(PanelActivity.this, bean.devId);
通过群组 ID 进入对应设备面板页面。
接口说明
goPanelWithCheckAndTip(Activity activity, String groupId, boolean isAdmin)
参数说明
参数 | 说明 |
---|---|
activity | 当前页面 context |
groupId | 群组 ID |
isAdmin | 是否家庭管理员 |
示例代码
boolean isAdmin = null != TuyaHomeSdk.getDataInstance().getHomeBean(curFamilyId)
&& TuyaHomeSdk.getDataInstance().getHomeBean(curFamilyId).isAdmin();
AbsPanelCallerService service = MicroContext.getServiceManager().findServiceByInterface(AbsPanelCallerService.class.getName());
service.goPanelWithCheckAndTip(PanelActivity.this, groupId, isAdmin);
点击面板按钮无反应时,请查看 logcat 日志内容,再 通过路由回调跳转到实现页面。
此方法替代原有的面板右上角按钮监听。
面板文件会存放在当前 app
存储目录下,若需要清理缓存可调用本小节描述的方法。
示例代码
ClearCacheService service = MicroContext.getServiceManager().findServiceByInterface(ClearCacheService.class.getName());
if (service != null) {
service.clearCache(PanelActivity.this);
}
TuyaSmartSdk.getEventBus().post(new PageCloseEventModel());
错误码 | 说明 |
---|---|
1901 | 面板下载失败 |
1902 | 多语言包下载失败 |
1903 | 设备类型不支持 |
1904 | 群组内无设备 |
1905 | 家庭 ID(homeId )有误 |
1906 | 设备 DeviceBean 为 null |
1907 | 找不到可下载的面板资源 |
1908 | 固件版本不正确 |
1909 | 未知错误 |
该内容对您有帮助吗?
是否该内容对您有帮助吗?
是否