SDK 16KB 版本升级适配变更说明。
更新内容
目前 RN 使用的版本较低,且飞燕生态的面板和云智能 app 都已经切换到 H5 的面板,当前版本更新之后,会移除 RN 依赖,同时对应的 v8-android也会被移除;
更新到使用 H5 相应前端页面之后,本地定时功能将不再支持,有需要可以自己自定义开发;
multiendinonebridge sdk 升级到支持 16KB size 的版本(对应 libcurl.so、libcrypto.1.1.so、libssl.1.1.so会升级到支持 16KB 的版本);
CoAP 支持 16KB 升级;
tnet4android 切换到支持 16KB 版本;
public-channel-core 解耦 id2 版本更新;
SDK变更
更新:
api 'com.aliyun.iot.aep.sdk:sdk-framework:1.1.15.1'
api 'com.alibaba.ailabs.iot:multiendinonebridge:1.0.0.28.2'
api 'com.aliyun.alink.linksdk:coap-sdk:2.0.2'
api 'com.taobao.android:tnet4android:3.1.14.10-open-emas-16kb'
api 'com.taobao.android:networksdk:3.6.0-open'
api 'com.aliyun.alink.linksdk:public-channel-core:0.8.1.noid2'删除以下内容:
api 'com.aliyun.iot.aep.page:rn:0.4.3'新增:
api("com.aliyun.iot.aep.sdk:iot-mc-router:0.0.2") {
exclude (group = "com.aliyun.ams", module = "alicloud-android-push-iot")
exclude (group = "com.taobao.android", module = "accs_sdk_taobao")
exclude (group = "com.taobao.android", module = "networksdk")
}
api("com.aliyun.iot.aep.sdk:lighter4ilop:0.0.2") {
exclude (group = "com.aliyun.ams", module = "alicloud-android-push-iot")
exclude (group = "com.taobao.android", module = "accs_sdk_taobao")
exclude (group = "com.taobao.android", module = "networksdk")
exclude(group = "com.aliyun.tg.runtime", module = "event")
}
api("com.aliyun.iot.aep.sdk:lighter:0.0.9") {
exclude (group = "com.aliyun.ams", module = "alicloud-android-push-iot")
exclude (group = "com.taobao.android", module = "accs_sdk_taobao")
exclude (group = "com.taobao.android", module = "networksdk")
}新增初始化代码
可以放在 IoTSmart.init((AApplication) appContext, initConfig); 初始化之后。
说明
使用插件功能需要新增此初始化代码。
BoneConfig.set(APP_CODE, "thirdApp");
try {
// init router
RouterBusiness.init(appContext, getAppKey());
} catch (Exception e) {
ALog.e( JOB_NAME, "RouterBusiness init failed", e);
}
try {
// BHAInitializer
String serverEnv = GlobalConfig.getInstance().getApiEnv() != null ? GlobalConfig.getInstance().getApiEnv() : "";
HashMap<String, Object> params = new HashMap<>();
params.put(BHAInitializer.appEnvKey, serverEnv);
params.put(BHAInitializer.apiGateWayKey, "apiclient");
params.put(BHAInitializer.languageKey, "zh-CN");
BHAEnvironment.mUseInitLanguageKey = "zh-CN";
BHAInitializer.init((Application) appContext, params);
ALog.d(JOB_NAME, "apiEnv = " + iotEnv
+ ", boneEnv = " + boneEnv
+ ", productEnv = " + productEnv
+ ", bha env = " + JSON.toJSONString(params)
+ ", appCode = " + BoneConfig.get(APP_CODE));
} catch (Exception e) {
ALog.e(JOB_NAME, "BHA init failed", e);
}打开前端页面参考代码
/**
* 打开反馈页面
*
* @param context 上下文对象,用于启动页面跳转
*/
public static void openFeedback(Context context) {
openBHAPage(context, "link://router/feed_back");
}
/**
* 打开云端定时页面
*
* @param context 上下文对象,用于启动页面跳转
*/
public static void openCloudTimer(Context context) {
// 旧 RN
// openBHAPage(context, "link://router/cloudtime");
openBHAPage(context, "link://router/cloud_time");
}
/**
* 打开设备通知页面
*
* @param context 上下文对象,用于启动页面跳转
*/
public static void openDeviceNotification(Context context) {
// 旧版本 RN
// openBHAPage(context, "link://router/devicenotices");
openBHAPage(context, "link://router/device_notices");
}
public static void openBHAPage(Context context, String url) {
Bundle bundle = new Bundle();
bundle.putString("mobileModel", Build.MODEL);
bundle.putString("mobileSystem", Build.VERSION.RELEASE);
bundle.putString("appVersion", "1.0.0");
Router.getInstance().toUrl(context, url, bundle);
}
/**
* 打开设备面板页面
* <p>
* 该方法通过路由跳转到指定的设备面板页面,并传递必要的设备信息和配置参数
*
* @param context Activity上下文,用于页面跳转
* @param url 设备链接地址(注:当前实现中未使用该参数)
*/
public static void openDevicePanel(Activity context, String url) {
Bundle bundle = new Bundle();
bundle.putString("mobileModel", Build.MODEL);
bundle.putString("mobileSystem", Build.VERSION.RELEASE);
bundle.putString("appVersion", "1.0.0");
bundle.putString("iotId", "A9war47OIVzGEtkexjkg000000");
bundle.putBoolean("ProgressLoadUINeeded", true);
Router.getInstance().toUrlForResult(context, "link://router/a1fW24tvg7B", 10010, bundle);
}
完整sdk 依赖
sdk依赖
api 'com.aliyun.iot.aep.sdk:apiclient:0.1.9'
api 'com.aliyun.iot.aep.sdk:sdk-framework:1.1.15.1'
api 'com.aliyun.iot.aep.sdk:iot-credential:0.0.4.1'
api 'com.aliyun.alink.linksdk:api-client-biz:1.0.3'
api 'com.aliyun.iot.sdk:account-oa-ui:1.0.0.6'
api 'com.alibaba.sdk.android.openaccount:openaccount-ui-default:3.7.17'
api('com.alibaba.ailabs.iot:aisbase:1.0.0.131-aisbase') {
exclude group: 'com.taobao.android', module: 'mtopsdk_allinone'
}
api 'com.aliyun.iot.aep.component:router-external:0.1.20'
api 'com.aliyun.iot.aep.sdk:jsbridge-external:0.1.8.4'
api 'com.aliyun.alink.linksdk:connectsdk:1.0.3.2'
api 'com.alibaba.ailabs.tg:baseutils:1.0.2.10'
//长连接SDKframework
api 'com.aliyun.iot.aep.sdk:connectchannel:0.1.5.1'
api 'com.aliyun.alink.linksdk:public-channel-mobile:1.5.7'
api 'com.aliyun.alink.linksdk:public-channel-core:0.8.1.noid2'
//配网、设备模型SDK
api ('com.aliyun.alink.linksdk:public-tmp:2.1.5') {
exclude(group = "com.aliyun.alink.linksdk", module = "coap-sdk")
}
api('com.aliyun.alink.linksdk:devicecenter:1.13.0.2') {
exclude(group = "com.aliyun.alink.linksdk", module = "coap-sdk")
}
api('com.aliyun.alink.linksdk:devicecenter-provision-core:1.13.0.2')
api('com.aliyun.alink.linksdk:devicecenter-provision-reserve:1.13.0.2')
api('com.alibaba.ailabs.iot:meshsdk:1.0.9.6') {
exclude(group: 'com.alibaba.ailabs.iot', module: 'multiendinonebridge')
}
api('com.alibaba.ailabs.iot:gattlibrary:1.0.0.39-gatt')
api('com.alibaba.ailabs.iot:bluetoothleSDK:1.0.0.48')
api 'com.alibaba.ailabs.iot:multiendinonebridge:1.0.0.28.2'
api ("com.taobao.android:tnet4android:3.1.14.10-open-emas-16kb")
api("com.taobao.android:networksdk:3.6.0-open")
//推送SDK,可选
api('com.aliyun.iotx:iot-push:2.1.5-SNAPSHOT') {
exclude group: 'com.taobao.android', module: 'utdid4all'
exclude group: 'com.taobao.android', module: 'tlog_adapter'
exclude group: 'com.taobao.android', module: 'tnet4android'
}
api 'com.aliyun.ams:alicloud-android-utdid:2.6.0'
//插件SDK,可选
api 'com.aliyun.alink.linksdk:public-tmp-ext-boneplugin:1.10.1'
//蓝牙SDK,可选
api 'com.aliyun.alink.linksdk:lpbs-plugin-breeze:1.2.2'
api 'com.aliyun.alink.linksdk:breeze:1.4.5'
api('com.aliyun.alink.linksdk:breeze-biz:2.0.7') {
exclude(group: 'com.alibaba.ailabs.iot', module: 'aisbase')
}
api 'com.aliyun.alink.linksdk:ble-library:1.3.2'
api 'com.aliyun.alink.linksdk:breeze-ota:1.2.2'
api("com.aliyun.iot.aep.sdk:iot-mc-router:0.0.2") {
exclude (group = "com.aliyun.ams", module = "alicloud-android-push-iot")
exclude (group = "com.taobao.android", module = "accs_sdk_taobao")
exclude (group = "com.taobao.android", module = "networksdk")
}
api("com.aliyun.iot.aep.sdk:lighter4ilop:0.0.2") {
exclude (group = "com.aliyun.ams", module = "alicloud-android-push-iot")
exclude (group = "com.taobao.android", module = "accs_sdk_taobao")
exclude (group = "com.taobao.android", module = "networksdk")
exclude(group = "com.aliyun.tg.runtime", module = "event")
}
api("com.aliyun.iot.aep.sdk:lighter:0.0.9") {
exclude (group = "com.aliyun.ams", module = "alicloud-android-push-iot")
exclude (group = "com.taobao.android", module = "accs_sdk_taobao")
exclude (group = "com.taobao.android", module = "networksdk")
}仓库
repositories {
flatDir {
dirs 'libs'
}
mavenLocal()
maven {
url "http://maven.aliyun.com/nexus/content/repositories/releases"
}
maven {
url "http://maven.aliyun.com/nexus/content/repositories/snapshots"
}
maven {
url 'https://developer.huawei.com/repo/'
}
jcenter()
google()
}exclude处理
重要
本次更新了 tnet4andorid 库,删除全局 exclude tnet4andorid 的 代码。
configurations {
cleanedAnnotations
all*.exclude group: 'org.jetbrains', module: 'annotations'
//去无线保镖
all*.exclude group: 'com.aliyun.iot.aep.sdk.external', module: 'securitybody'
all*.exclude group: 'com.aliyun.iot.aep.sdk.external', module: 'securityguard'
all*.exclude group: 'com.taobao.android', module: 'securityguardsdk'
all*.exclude group: 'com.taobao.android', module: 'securityguardaar'
all*.exclude group: 'com.taobao.android', module: 'utdid4all'
all*.exclude group: 'com.taobao.android', module: 'mtopsdk_allinone'
all*.exclude group: 'com.aliyun.ams', module: 'alicloud-android-push-iot'
}常见问题
如发现so库冲突
packagingOptions {
pickFirst 'lib/armeabi/libtnet-3.1.14.so'
pickFirst 'lib/arm64-v8a/libc++_shared.so'
pickFirst 'lib/armeabi-v7a/libc++_shared.so'
pickFirst 'lib/x86/libc++_shared.so'
}权限获取
说明
注意:OA 不请求基站、imei、位置等信息,设置之后,请自行测试 api 请求是否正常;
OpenAccountSDK.setProperty("disableGetImei", "true");
OpenAccountSDK.setProperty("disableLocationService", "true");
OpenAccountSDK.setProperty("disableQueryCellLocation", "true");该文章对您有帮助吗?