A-v6.2.3.7版本升级到v6.2.7.4版本

一、功能说明

1、新增

1.1、新增 XAPP SDK 配置信息

XAPP SDK 配置中新增了连接 CM 服务器的版本号配置,及设备事件监听事件配置。

XLinkConfig config = XLinkConfig.newBuilder()
        //全局开启默认进行内网自动重连配置
        .setLocalNetworkAutoConnection(true)
        ...
        .build();
XLinkAndroidSDK.init(config);
参数 配置信息 说明
mqttClientVersion 连接 CM 服务器的版本号 该配置是为了解决 CM 服务器版本更新后,部分企业环境的版本未同步更新依然使用旧版本服务器版本时,则需要变更连接的版本号配置才可正常使用
eventListsener 设备事件通知回调 设备事件监听主要是用于内网固件升级功能的支持,作为设备发送事件通知 APP 的渠道

注:版本的差异主要是支持的功能不同的,并不表示某些功能的修复或者是升级,低版本相对于高版本不意味着一定存在风险。

1.2、新增 Restful 接口

在此版本更新中,新增了阿里推送注册接口。阿里推送注册功能是将应用及推送信息注册到服务器,以便设备产生告警信息时可以通过阿里推送离线接收到消息。
注意,离线消息推送要求需要集成阿里的推送功能,才能将应用注册阿里推送配置到服务器。注册成功后离线消息需要通过阿里的功能接收,此部分遵循阿里推送文档说明。

条目 内容
URL /v2/user/{user_id}/alipush-register
Method XLinkRestful.getApplicationApi().postUserRegisterAlipush(…)
说明 注册推送配置到服务器,以启用阿里推送功能
条目 内容
URL /v2/user/{user_id}/alipush-unregister
Method XLinkRestful.getApplicationApi().postUserUnregisterAlipush(…)
说明 取消推送配置的注册,以关闭阿里推送功能

1.3、新增内网固件升级功能

详情请参考进阶篇-设备固件升级

1.4、新增同步 Home 设备任务

新增同步 Home 下所有设备的任务,通过此任务同步的 Home 设备将会以XDevice对象返回;原获取 Home 下所有设备接口依然可用。

XLinkSyncHomeDeviceListTask task = XLinkSyncHomeDeviceListTask.newBuilder()
        .setHomeId(home.id)
        .setListener(new XLinkTaskListener<List<XDevice>>() {
            @Override
            public void onError(@NotNull XLinkCoreException exception) {
                //错误信息
            }
            @Override
            public void onStart() {
            }
            @Override
            public void onComplete(List<XDevice> result) {
                //返回的设备对象为 XDevice,不需要再自行对接口返回的数据进行转换
            }
        })
        .build();
XLinkSDK.startTask(task);

注意事项:使用此任务同步的 Home 设备,将会默认添加到设备管理列表中维护。如果只需要获取 Home 下的设备但是不需要 SDK 对设备进行维护和管理,则不建议使用此任务

1.5、新增错误码

自v6.2.6.x版本起,新增 SSL 网络错误码,该错误码可能在登录时发生,由于登录时使用的 SSL 证书错误或无法正确建立 https 的连接引起。

错误码 字段定义 意义
4001007 ERROR_SSL_EXCEPTION SSL验证错误,可能是证书错误或者是未使用正确的SSL验证

2、变更

2.1、日志配置变更

对于调试的日志输出配置,本次更新了日志的输出配置方式。旧的日志输出配置方式依然有效,但是设置了新的配置方式,则将使用新的参数进行处理,旧的配置参数将被忽略。

BaseLog.Config config = new BaseLog.Config()
        //设置是否输出日志到文件中保存
        .setEnableLogFile(true)
        //设置日志输出等级
        .setDebugLevel(Loggable.DEBUG)
        //设置日志输出到文件中的等级
        .setBufferLevel(Loggable.DEBUG)
        //设置自定义的日志输出对象
        .setLoggable(customLogger)
        //设置新的日志信息配置
        .setLogInfoProvider(new LogInfoProvider() {
            @NonNull
            @Override
            public String provideLogFilesStoragePath() {
                //提供日志文件保存文件夹路径,注意只是文件夹,不是文件
                return Environment.getExternalStorageDirectory().getPath().concat("/xlink/");
            }
            @NonNull
            @Override
            public String provideLogFileName(String time) {
                //当一个日志文件生成时,会调用此方法,参数为文件生成的时间信息;
                //生成一个日志文件名并返回,建议使用上时间信息,防止文件名重复;
                //重名文件不会替换旧文件
                return "log_" + time;
            }
            @NonNull
            @Override
            public String provideLogZipFileName(String time) {
                //若日志文件夹中存在大量日志文件时,将会进行压缩;创建压缩文件时将调用此方法,生成压缩文件的名称
                return "archive_" + time;
            }
        });

默认情况下,如果没有特殊要求或者是特殊处理,建议使用XLinkAndroidSDK提供的默认日志配置参数,也可以在该默认参数中进行修改。

//使用默认配置参数,或者是基于默认参数进行局部修改
BaseLog.Config config=XLinkAndroidSDK.defaultLogConfig(this)
        .setEnableLogFile(false);
//初始化SDK
XLinkConfig.Builder builder = new XLinkConfig.Builder()
        .setLogConfig(config)
        ...

在默认日志配置参数中,相对以前的变更主要在于:

  1. 生成的日志文件不再全部置于/sdcard/xlink的文件夹下,将会根据当前应用包名创建文件夹,并且置于相应的包名文件夹下/sdcard/xlink/包名
  2. 允许开发者自行定义日志文件名称及压缩文件名称,以便定时对日志进行清理或移除
  3. 现在可以获取到当前正在运行的 SDK 输出的日志文件路径
//此方法仅在 XLog 已经启用并且存在输出日志的情况下才可用;否则将返回 null 或不正确的路径
if (XLog.isInited() && XLog.getInstance().isStarted()) {
    String logFilePath = XLog.getInstance().getCurrentLogFilePath();
}

注意事项:务必调用XLog.isInited()确认 XLog 是否 已经初始化成功,否则可能获取到错误的路径;日志文件只有在XLog.startLog()之后才会创建,所以也需要确认 XLog 是否已经启动成功。

二、更新说明

日期 更新内容
2019.01.16 新增版本更新说明
类别 更新内容
配置优化 1.新增支持配置连接CM服务端的版本号,支持不同环境下使用不同CM版本号 2.新增设备事件监听事件
任务更新 1.新增同步 Home 设备列表任务 2.新增内网固件升级功能相应任务
数据更新 1.新增设备对象云端在线可访问字段,更新设备连接状态查询方法 2.优化了设备操作接口
错误码 1.新增 SSL 异常错误码,由于 SSL 引起异常时将直接获取到该信息
资源优化 1.优化异常对象的数据存储,降低重复的操作及频繁申请内存问题 2.优化 token 无效时不再处理相应的任务,降低资源的占用
功能优化 1.更新扫描端口的使用,降低端口被其它网络程序拦截数据导致的无法扫描到设备的问题 2.优化日志输出配置,提供日志文件路径获取方法
接口更新 1.优化 Restful 接口的初始化时机,现在 XAPP SDK 初始化后即可正常使用 Restful 接口 2.新增阿里推送配置注册接口
BUG修复 1.修复设备管理资源释放后可能引用异常的问题 2.修复反复订阅已存在的设备时可能会订阅失败的问题 3.修复部分任务有时会返回不正确的错误码 4.修复在低版本 Android 系统中由于 JDK 版本问题引起的崩溃
没找到需要的文档?
你可以提交工单反馈 或 阅读常见问题