Browse Source

fix: ci

master
高志龙 5 months ago
parent
commit
8551e8f529
  1. 6
      app/build.gradle
  2. 1
      app/src/main/AndroidManifest.xml
  3. 26
      app/src/main/java/qianmu/container/activity/H5/UpdateFileActivity.java
  4. 5
      app/src/main/java/qianmu/container/activity/device/DeviceInfoActivity.java
  5. 4
      app/src/main/java/qianmu/container/app/Constant.java
  6. 34
      app/src/main/java/qianmu/container/data/DeviceData.java
  7. 9
      app/src/main/java/qianmu/container/entity/Building.java
  8. 5
      app/src/main/java/qianmu/container/http/retrofit/BaseService.java
  9. 31
      app/src/main/java/qianmu/container/mqtt/MQTTService.java
  10. 10
      app/src/main/java/qianmu/container/mqtt/MqttDataBean.java
  11. 24
      app/src/main/java/qianmu/container/util/SignWayUtil.java
  12. 2
      app/src/main/res/values/strings.xml

6
app/build.gradle

@ -2,17 +2,17 @@ apply plugin: 'com.android.application'
android {
compileSdkVersion 30
buildToolsVersion "35.0.1"
buildToolsVersion "30.0.3"
buildFeatures {
dataBinding = true
}
defaultConfig {
applicationId "qianmu.container"
minSdkVersion 24
minSdkVersion 22
targetSdkVersion 30
versionCode 6
versionName "V2.0.8.8"
versionName "V2.0.8.10"
// 2.0.8.2
// 2.0.8.3 mac修改
// V2.0.8.5

1
app/src/main/AndroidManifest.xml

@ -22,7 +22,6 @@
<uses-permission android:name="android.permission.INSTALL_PACKAGES"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<!--获取网络状态 获取网络信息状态,如当前的网络连接是否有效-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--访问网络 访问网络连接,可能产生GPRS流量-->

26
app/src/main/java/qianmu/container/activity/H5/UpdateFileActivity.java

@ -1,7 +1,10 @@
package qianmu.container.activity.H5;
import android.Manifest;
import android.app.smdt.SmdtManagerNew;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
@ -12,6 +15,9 @@ import android.util.Log;
import android.util.TimeUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.databinding.DataBindingUtil;
import com.alibaba.android.arouter.facade.annotation.Route;
@ -126,6 +132,8 @@ public class UpdateFileActivity extends BaseActivity {
ScreenSaverData.queryScreensaver(() -> totalQueryCount++, () -> queryResponseCount++ );
//上传设备版本号
DeviceData.sendVersion(() -> totalQueryCount++, () -> queryResponseCount++ );
//上传固件版本号
DeviceData.updateFirmwareStatus(() -> totalQueryCount++, () -> queryResponseCount++ );
//获取定时开关机时间
DeviceData.getMachineOnOffTime(() -> totalQueryCount++, () -> queryResponseCount++ );
//获取同屏
@ -250,15 +258,19 @@ public class UpdateFileActivity extends BaseActivity {
//新版欣威视通初始化
SdkApi.newInstance(this);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if(!Environment.isExternalStorageManager()){
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
intent.setData(Uri.parse("package:" + this.getPackageName())); // 设置要申请权限的应用包名
startActivity(intent); // 启动活动以请求用户授权
return;
LoggerUtil.e("当前版本号: ",DeviceUtil.getVersionName());
try{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if(!Environment.isExternalStorageManager()){
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
intent.setData(Uri.parse("package:" + this.getPackageName())); // 设置要申请权限的应用包名
startActivity(intent); // 启动活动以请求用户授权
return;
}
}
}catch (ActivityNotFoundException e){
}
LoggerUtil.e("当前版本号: ",DeviceUtil.getVersionName());
//设置开机自启应用
if(Constant.androidBoardType.equals("smt")){
MyApplication.getInstance().getSmdt().sys_setSystemBootApp(MyApplication.getInstance().getPackageName());

5
app/src/main/java/qianmu/container/activity/device/DeviceInfoActivity.java

@ -95,16 +95,17 @@ public class DeviceInfoActivity extends BaseActivity {
});
}
/**
/**
* 检测权限并授权
* */
private void setPermission(){
if(ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(this,new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_NETWORK_STATE,
Manifest.permission.CAMERA,
Manifest.permission.RECORD_AUDIO,
Manifest.permission.RECEIVE_BOOT_COMPLETED,

4
app/src/main/java/qianmu/container/app/Constant.java

@ -24,12 +24,12 @@ public class Constant {
public static String mqttState = ""; // 屏幕连接方式
public static String TTSHome=""; // sbc-思必驰 kdxf-科大讯飞
//public static String androidBoardType = ""; //设备板子型号 无固定版
public static String androidBoardType = "ys"; // 设备板子型号 ys(亿晟) 北京颐堤港定制touch
// public static String androidBoardType = "ys"; // 设备板子型号 ys(亿晟) 北京颐堤港定制touch
// public static String androidBoardType = "xwst"; //设备板子型号 xwst(欣威视通3399)
// public static String androidBoardType = "xwst2"; //设备板子型号 xwst2(欣威视通3588、T982、3576)
// public static String androidBoardType = "zc"; //设备板子型号 zc(卓策主板——王府井喜悦、杨浦中心医院)
// public static String androidBoardType = "sx"; //设备板子型号 sx(视想)
// public static String androidBoardType = "nova"; //设备板子型号 诺瓦盒子 华贸LED
public static String androidBoardType = "nova"; //设备板子型号 诺瓦盒子 华贸LED
// public static String androidBoardType = "huidu"; //设备板子型号 huidu(灰度主板) 罗湖寻车机
// public static String androidBoardType = "bv"; //设备板子型号 Bv-3588M
// public static String androidBoardType = "smt"; //设备板子型号 视美泰

34
app/src/main/java/qianmu/container/data/DeviceData.java

@ -80,6 +80,7 @@ public class DeviceData extends BaseData {
public static final String HINT_DEVICE_IP = "hint_device_ip";
public static final String HINT_DEVICE_MAC = "hint_device_mac";
public static final String HINT_DEVICE_TYPE = "hint_device_type";
public static final String VOICE_CODE = "voice_code";
public static final String HINT_DEVICE_TOUCH = "hint_device_touch";//触摸属性 // 0触摸 1非触摸
public static final String HINT_SYNC_TEST = "hint_sync_test";
public static final String HINT_DEVICE_ROTATION = "hint_device_rotation";
@ -246,6 +247,8 @@ public class DeviceData extends BaseData {
JsonObject jsonObject = new JsonParser().parse(dataJson).getAsJsonObject();
String typeName = jsonObject.get("machineTypeName").getAsString();
DeviceData.saveDeviceInfo(DeviceData.HINT_DEVICE_TYPE, typeName); //设备类型
String voiceActivationCode = jsonObject.get("voiceActivationCode").getAsString();
DeviceData.saveDeviceInfo(DeviceData.VOICE_CODE, typeName); //设备语音激活码
LoggerUtil.e("getMachine()", typeName);
}
}else {
@ -319,16 +322,31 @@ public class DeviceData extends BaseData {
RetrofitUtil.getBaseService().sendVersion(requestBody).enqueue(new Callback<Resp>() {
@Override
public void onResponse(Call<Resp> call, Response<Resp> response) {
try {
if (StringUtil.respSuccess(response.body())) {
} else if (response.code() == 200 && "201".equals(response.body().getCode())) {
if (finishListener != null) finishListener.onFinish();
}
}
} catch (Throwable t) {
LoggerUtil.e("sendVersion", StringUtil.getThrowableStr(t));
}
@Override
public void onFailure(Call<Resp> call, Throwable t) {
LoggerUtil.saveError("sendVersion",t);
if (finishListener != null) finishListener.onFinish();
}
});
}
/**
* 上传版本号
* */
public static void updateFirmwareStatus(QueryPreparedListener preparedListener, QueryFinishListener finishListener) {
if (preparedListener != null) preparedListener.onPrepared();
Map<String, String> params = new HashMap<>();
params.put("code", DeviceData.getDeviceInfo(HINT_DEVICE_CODE));
params.put("hardwareFirmwareNum", SignWayUtil.getFirmwareVersion());//硬件固件号
params.put("hardwareVersionModel", SignWayUtil.getAndroidModle());// 硬件版本型号
params.put("firmwareStatus", "1");
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"),new Gson().toJson(params));
RetrofitUtil.getBaseService().updateFirmwareStatus(requestBody).enqueue(new Callback<Resp>() {
@Override
public void onResponse(Call<Resp> call, Response<Resp> response) {
if (finishListener != null) finishListener.onFinish();
}

9
app/src/main/java/qianmu/container/entity/Building.java

@ -114,6 +114,15 @@ public class Building {
private int order;
private String machineTypeName;//导视 信发 游戏
private int attribute;// 0触摸 1非触摸
private String voiceActivationCode; // 语音激活码
public String getVoiceActivationCode() {
return voiceActivationCode;
}
public void setVoiceActivationCode(String voiceActivationCode) {
this.voiceActivationCode = voiceActivationCode;
}
public String getName() {
return name;

5
app/src/main/java/qianmu/container/http/retrofit/BaseService.java

@ -165,6 +165,11 @@ public interface BaseService {
@POST("api/device/v1/client/version")
Call<Resp> sendVersion(@Body RequestBody body);
/**
* 上传 估计版本信息
*/
@POST("api/device/v1/client/updateFirmwareStatus")
Call<Resp> updateFirmwareStatus(@Body RequestBody body);
/**
* 获取设备屏保信息默认图跳转时间等
*

31
app/src/main/java/qianmu/container/mqtt/MQTTService.java

@ -77,6 +77,7 @@ import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import cn.hutool.crypto.asymmetric.Sign;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
@ -260,8 +261,8 @@ public class MQTTService extends Service {
client.connect(conOpt, null, iMqttActionListener);
}
} catch (MqttException e) {
e.printStackTrace();
}
e.printStackTrace();
}
}
@ -465,7 +466,10 @@ public class MQTTService extends Service {
CloseMqttBean closeMqttBean =new Gson().fromJson(msg, new TypeToken<CloseMqttBean>() {
}.getType());
if(closeMqttBean.getType().equals("app-update")){
if(closeMqttBean.getType().equals("firmware-update")){
//固件升级
systemUpdate(closeMqttBean);
}else if(closeMqttBean.getType().equals("app-update")){
//APP下发
appUpdate(closeMqttBean);
}else if(closeMqttBean.getType().equals("h5-update")){
@ -544,6 +548,17 @@ public class MQTTService extends Service {
}
}
/**
* 系统升级
*/
public void systemUpdate(CloseMqttBean closeMqttBean){
String url = closeMqttBean.getData().getUpdate().getUrl();
String version = closeMqttBean.getData().getUpdate().getFirmwareIssueVersion();
if(!version.equals(SignWayUtil.getFirmwareVersion()) && !StringUtil.isEmpty(url)){
downloadImgFile(url,"update.img");
}
}
/**
* 更新app
* */
@ -775,6 +790,16 @@ public class MQTTService extends Service {
});
}
/**
* 下载固件并更新
*/
private void downloadImgFile(String url,final String appName) {
final String localPath = StringUtil.strSplice(Constant.CACHE_PATH, "update/", appName);
FileUtil.downloadFile(url, localPath, () -> {
SignWayUtil.updateSystem(localPath);
});
}
/**
* 忽略证书
* */

10
app/src/main/java/qianmu/container/mqtt/MqttDataBean.java

@ -76,6 +76,7 @@ public class MqttDataBean implements Serializable {
String url;
String size;
String name;
String firmwareIssueVersion;
String description;//备注
public String getVersion() {
@ -110,6 +111,14 @@ public class MqttDataBean implements Serializable {
this.name = name;
}
public String getFirmwareIssueVersion() {
return firmwareIssueVersion;
}
public void setFirmwareIssueVersion(String firmwareIssueVersion) {
this.firmwareIssueVersion = firmwareIssueVersion;
}
public String getDescription() {
return description;
}
@ -117,6 +126,7 @@ public class MqttDataBean implements Serializable {
public void setDescription(String description) {
this.description = description;
}
}
/**

24
app/src/main/java/qianmu/container/util/SignWayUtil.java

@ -487,11 +487,16 @@ public class SignWayUtil {
//获取设备固件号
public static String getFirmwareVersion() {
try {
return Build.VERSION.INCREMENTAL;
} catch (Throwable t) {
LoggerUtil.e("getFirmwareVersion", StringUtil.getThrowableStr(t));
return "";
if(Constant.androidBoardType.equals("ys")) {
MyManager manager = MyManager.getInstance(MyApplication.getInstance());
return manager.getAndroidDisplay();
}else{
try {
return Build.VERSION.INCREMENTAL;
} catch (Throwable t) {
LoggerUtil.e("getFirmwareVersion", StringUtil.getThrowableStr(t));
return "";
}
}
}
@ -505,6 +510,15 @@ public class SignWayUtil {
}
}
// 估计升级
public static void updateSystem(String filePath){
if(Constant.androidBoardType.equals("ys")) {
MyManager manager = MyManager.getInstance(MyApplication.getInstance());
manager.upgradeSystem(filePath);
manager.setUpdateSystemDelete(true); // 升级成功后删除img文件
}
}
/**
*设置系统时间
*/

2
app/src/main/res/values/strings.xml

@ -1,5 +1,5 @@
<resources>
<string name="app_name">Android容器</string>
<string name="app_name">千目容器</string>
<string name="register_state">设备注册状态:</string>
<string name="hint_mall_code">商场编号:</string>
<string name="hint_container_type">容器类型</string>

Loading…
Cancel
Save