mac
2023-12-14 99cd5725280d66550aaaaedf8440389fd0d3a60b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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.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 appCode = "1728976668552863746";
    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<NewVersionBean> cloudCallBeak) {
        JsonObject json = new JsonObject();
        json.addProperty("appCode", appCode);
        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<String>() {
            @Override
            public void onSuccess(String jsonStr) {
                if (TextUtils.isEmpty(jsonStr)) {
                    if (cloudCallBeak != null) {
                        cloudCallBeak.onSuccess(null);
                    }
                }
                Type type = new TypeToken<NewVersionBean>() {
                }.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);
                }
            }
        });
 
    }
}