瀏覽代碼

升级检测 - update for 新需求

GZBranch
wufasong 1 天之前
父節點
當前提交
5b25cca410

+ 1
- 1
app/src/main/java/com/huntersun/vkyes/etcopencard/project/api/bean/IFCode.java 查看文件

@@ -115,7 +115,7 @@ public class IFCode {
public static final String IFCODE_PRODUCT_EQUITY = "iaw/issue/product/pageDetail";//产品详情查询
public static final String IFCODE56 = "56"; //订单支付下单接口
public static final String IFCODE57 = "57"; //订单支付结果查询接口
public static final String IFCODE148 = "iaw/api/app/versionQuery"; //apk 版本查询接口
public static final String IFCODE148 = "iaw/api/operation/appVersion/findCurrentAppVersion"; //apk 版本查询接口
public static final String IFCODE149 = "149"; //根据订单ID获取部分订单信息(车辆信息、用户信息)
public static final String IFCODE150 = "iaw/app/issue/order/goodstobeshippedquery"; //查询全部待发货订单
public static final String IFCODE155 = "iaw/issue/order/orderReceiveGoods"; //订单完成收货

+ 18
- 0
app/src/main/java/com/huntersun/vkyes/etcopencard/project/api/bean/ResultBean.java 查看文件

@@ -826,6 +826,8 @@ public class ResultBean<T> {
private String version;
private int isUpLevel;
private String message;
private String publisher;
private String releaseTime;
private String id;
private String vehicleModel;
private int accountIdentity;
@@ -1928,6 +1930,22 @@ public class ResultBean<T> {
this.message = message;
}

public String getPublisher() {
return publisher;
}

public void setPublisher(String publisher) {
this.publisher = publisher;
}

public String getReleaseTime() {
return releaseTime;
}

public void setReleaseTime(String releaseTime) {
this.releaseTime = releaseTime;
}

public String getUseUserType() {
return useUserType;
}

+ 78
- 12
app/src/main/java/com/huntersun/vkyes/etcopencard/src/ui/activity/LoginActivity.java 查看文件

@@ -163,22 +163,88 @@ public final class LoginActivity extends AppActivity implements KeyboardWatcher.
MyRetrofit.newInstanceGZ(IFCode.IFCODE148, new ResultBean.BizContent<>(), new MyRetrofit.ReturnResult() {
@Override
public void onSuccess(ResultBean resultBean, ResultBean.BizContent bizContent) {
if (FileImageTool.compareVersion(bizContent.getVersion(), AppConfig.getVersionName()) == 1) {
new UpdateDialog.Builder(getActivity())
// 版本名
.setVersionName(bizContent.getVersion())
// 是否强制更新
.setForceUpdate(bizContent.getIsUpLevel() == 1)
// 更新日志
.setUpdateLog(bizContent.getMessage())
// 下载 url Url.http_img + result.data.getUrl()
.setDownloadUrl(MyRetrofit.URL_APP_IMG + "/" + bizContent.getUrl())
.show();

Log.i("版本检查", "版本查询接口返回成功: " + JSONObject.toJSONString(resultBean));

// 检查接口返回是否成功
if (resultBean.getCode() != 0) {
Log.e("版本检查", "版本查询接口返回失败,code: " + resultBean.getCode() + ", message: " + resultBean.getMessage());
return;
}
// 检查返回数据是否为空
if (bizContent == null) {
Log.e("版本检查", "版本查询接口返回数据为空");
return;
}
String serverVersion = bizContent.getVersion();
String currentVersion = AppConfig.getVersionName();
Log.i("版本检查", "当前版本: " + currentVersion + ", 服务器版本: " + serverVersion);
// 比较版本号:1表示服务器版本高于当前版本,需要更新
int versionCompare = FileImageTool.compareVersion(serverVersion, currentVersion);
if (versionCompare == 1) {
// 服务器版本高于当前版本,需要更新
Log.i("版本检查", "检测到新版本,开始处理更新逻辑");
boolean isForceUpdate = bizContent.getIsUpLevel() == 1;
String updateMessage = bizContent.getMessage();
String downloadUrl = bizContent.getUrl();
Log.i("版本检查", "更新信息 - 强制更新: " + isForceUpdate + ", 更新说明: " + updateMessage + ", 下载地址: " + downloadUrl);
if (isForceUpdate) {
// 强制更新:必须更新才能继续使用
Log.i("版本检查", "强制更新模式,显示更新对话框");
new UpdateDialog.Builder(getActivity())
.setVersionName(serverVersion)
.setForceUpdate(true)
.setUpdateLog(updateMessage)
.setDownloadUrl(downloadUrl)
.show();
} else {
// 非强制更新:提示用户有新版本,但不强制更新
Log.i("版本检查", "非强制更新模式,显示提示信息");
new MessageDialog.Builder(getActivity())
.setTitle("发现新版本")
.setMessage("发现新版本 " + serverVersion + ",是否立即更新?\n\n" + updateMessage)
.setConfirm("立即更新")
.setCancel("稍后再说")
.setListener(new MessageDialog.OnListener() {
@Override
public void onConfirm(BaseDialog dialog) {
// 用户选择更新,显示更新对话框
new UpdateDialog.Builder(getActivity())
.setVersionName(serverVersion)
.setForceUpdate(false)
.setUpdateLog(updateMessage)
.setDownloadUrl(downloadUrl)
.show();
}
@Override
public void onCancel(BaseDialog dialog) {
// 用户选择稍后再说,不做任何处理
Log.i("版本检查", "用户选择稍后更新");
}
})
.show();
}
} else if (versionCompare == 0) {
// 版本相同,无需更新
Log.i("版本检查", "当前版本已是最新版本");
} else {
// 当前版本高于服务器版本(理论上不应该发生)
Log.w("版本检查", "当前版本高于服务器版本,可能是测试环境");
}
}

@Override
public void onError(Result resp) {
public void onError(Response<Result> resp) {
Log.e("版本检查", "版本查询接口调用失败: " + (resp != null ? resp.message() : "未知错误"));
}
});
}

Loading…
取消
儲存