高级功能 UI 业务包

更新时间:2024-01-10 08:37:46下载pdf

高级功能 UI 业务包提供了承载 App 高级功能 增值服务的 Android 容器。目前,支持的高级功能类型如下所示:

集成业务包

创建工程

在 Android Studio 中建立您的工程,接入智能生活 App SDK,并完成业务包。详情请参考 接入安卓版智能生活 App SDK 业务包框架

配置 build.gradle

dependencies {
 api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:5.8.0")
  implementation 'com.thingclips.smart:thingsmart-bizbundle-third-service'
}

混淆配置

# 应配置 build.gradle 里所有三方依赖混淆

# fastJson
-keep class com.alibaba.fastjson.**{*;}
-dontwarn com.alibaba.fastjson.**

-keep class com.squareup.okhttp.** { *; }
-keep interface com.squareup.okhttp.** { *; }
-dontwarn com.squareup.okhttp.**

-keep class okio.** { *; }
-dontwarn okio.**

-keep class com.thingclips.**{*;}
-dontwarn com.thingclips.**

功能调用

枚举高级功能类型

public enum PersonalThirdServiceType {
    // 短信通知
    PUSH_SMS_SERVICE("personal_push_sms_service"),
    // 电话通知
    PUSH_CALL_SERVICE("personal_push_call_service");

    private final String type;

    PersonalThirdServiceType(String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }
}

查询高级功能

根据高级功能类型查询高级功能。此接口为异步接口。

接口说明

void requestPersonalThirdService(long homeId, PersonalThirdServiceType type, IPersonalThirdServiceCallback callback)

参数说明

参数 说明
HomeId 当前选中的家庭 ID
PersonalThirdServiceType 高级功能类型
IPersonalThirdServiceCallback 高级功能请求异步回调

示例代码

AbsPersonalThirdService thirdService = MicroContext.getServiceManager()
        .findServiceByInterface(AbsPersonalThirdService.class.getName());
thirdService.requestPersonalThirdService(homeId, PersonalThirdServiceType.PUSH_SMS_SERVICE,
    new IPersonalThirdServiceCallback() {
        @Override
        public void onSuccess(ThirdIntegrationBean bean) {
            String url = bean != null ? bean.getUrl() : null;
            Log.i("third_service", "url = " + url);
        }

        @Override
        public void onError(String errorCode, String errorMessage) {

        }
    });

打开高级功能页面

高级功能展示页面支持 Activity 和 Fragment。

示例代码

Activity

Intent intent = new Intent(context, WebViewActivity.class);
intent.putExtra("Uri", url);
context.startActivity(intent);

Fragment

WebViewFragment fragment = new WebViewFragment();
Bundle args = new Bundle();
args.putString("Uri", url);
args.putBoolean("enableLeftArea", true);
fragment.setArguments(args);
getSupportFragmentManager().beginTransaction()
.add(R.id.web_content, fragment, WebViewFragment.class.getSimpleName())
.commit();