package com.hdl.photovoltaic.other; import android.text.TextUtils; import com.google.gson.Gson; import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.linkpm.sdk.user.bean.NewVersionBean; import com.hdl.photovoltaic.HDLApp; import com.hdl.photovoltaic.config.AppConfigManage; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.internet.HttpClient; import com.hdl.photovoltaic.internet.api.HttpApi; import com.hdl.photovoltaic.listener.CloudCallBeak; import java.lang.reflect.Type; /** * App升级逻辑 */ public class HdlAppUpdateLogic { /** * 在iot平台创建新app时自动生成的(测试环境) */ private final String appCodeTest = "1728976668552863746"; /** * 在iot平台创建新app时自动生成的(正式环境) */ private final String appCodeRelease = "1763139117625831426"; private static volatile HdlAppUpdateLogic sHdlAppUpdateLogic; /** * 获取当前对象 * * @return HdlAppUpgradeLogic */ public static synchronized HdlAppUpdateLogic getInstance() { if (sHdlAppUpdateLogic == null) { synchronized (HdlAppUpdateLogic.class) { if (sHdlAppUpdateLogic == null) { sHdlAppUpdateLogic = new HdlAppUpdateLogic(); } } } return sHdlAppUpdateLogic; } /** * @return 返回包名 */ public String getApkFileName() { return HDLApp.getInstance().getPackageName() + ".apk"; } /** * app版本检测更新 * 支持Android、iOS、wgt检测 * * @param version 版本号 * @param cloudCallBeak 如果onSuccess 回调的bean为空,代表当前版本已经是最新版本,没有新版本 */ public void checkAppVersion(String version, CloudCallBeak cloudCallBeak) { JsonObject json = new JsonObject(); if (AppConfigManage.getOnlineServer()) { json.addProperty("appCode", appCodeRelease); } else { json.addProperty("appCode", appCodeTest); } json.addProperty("version", version); json.addProperty("releaseSystem", "Android");//发布系统,IOS、Android, wgt String requestUrl = HttpApi.POST_APP_VERSION_CHECK; HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak() { @Override public void onSuccess(String jsonStr) { if (TextUtils.isEmpty(jsonStr)) { if (cloudCallBeak != null) { cloudCallBeak.onSuccess(null); } } Type type = new TypeToken() { }.getType(); NewVersionBean newVersionBean = new Gson().fromJson(jsonStr, type); if (cloudCallBeak != null) { cloudCallBeak.onSuccess(newVersionBean); } } @Override public void onFailure(HDLException e) { if (cloudCallBeak != null) { cloudCallBeak.onFailure(e); } } }); } }