From 958d34dd9fdc1baa9caa8d0721873c46bb26f1c8 Mon Sep 17 00:00:00 2001 From: gaozl Date: Mon, 26 Jan 2026 15:02:06 +0800 Subject: [PATCH] fix: ci --- .../activity/H5/UpdateFileActivity.java | 56 ++++++++++++------- .../activity/H5/WebViewActivity.java | 20 ++++--- .../java/qianmu/container/app/Constant.java | 6 +- .../qianmu/container/data/DeviceData.java | 14 +++-- .../container/http/retrofit/BaseService.java | 4 +- .../qianmu/container/mqtt/MQTTService.java | 18 ++---- .../container/view/CustomerVideoView.java | 15 +++-- 7 files changed, 73 insertions(+), 60 deletions(-) diff --git a/app/src/main/java/qianmu/container/activity/H5/UpdateFileActivity.java b/app/src/main/java/qianmu/container/activity/H5/UpdateFileActivity.java index a818263..ec8c4ce 100644 --- a/app/src/main/java/qianmu/container/activity/H5/UpdateFileActivity.java +++ b/app/src/main/java/qianmu/container/activity/H5/UpdateFileActivity.java @@ -24,6 +24,8 @@ import com.aispeech.DUILiteConfig; import com.aispeech.DUILiteSDK; import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.launcher.ARouter; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; import com.iflytek.sparkchain.core.SparkChain; import com.iflytek.sparkchain.core.SparkChainConfig; import com.sdkapi.api.SdkApi; @@ -427,27 +429,41 @@ public class UpdateFileActivity extends BaseActivity { // 思必驰授权 private void initSbcSDK(){ - // 产品认证需设置 apiKey, productId, productKey, productSecret - DUILiteConfig config = new DUILiteConfig.Builder() - .setApiKey("d823edab41b8d823edab41b868ecc552") - .setProductId("279632533") - .setProductKey("ab73065d16e11bcfac026eee3db9f6cb") - .setProductSecret("85d9490c438099acc33be7676799399f") - .create(); - config.setExtraParameter("DEVICE_NAME", ""); - DUILiteSDK.init(getApplicationContext()); - // SDK 授权 - DUILiteSDK.doAuth(getApplicationContext(), config, new DUILiteSDK.InitListener() { - @Override - public void success() { - LoggerUtil.d("DUILiteSDKInit: ", "授权成功! "); - } - - @Override - public void error(String errorCode,String errorInfo) { - LoggerUtil.d("DUILiteSDKInit: ", "授权失败, errorcode: "+errorCode+",errorInfo:"+errorInfo); + String code = DeviceData.getDeviceInfo(DeviceData.VOICE_CODE); + LoggerUtil.e("设备语音code: ", code); + if(!StringUtil.isEmpty(code)){ + String dataJson = DeviceData.getDeviceInfo(DeviceData.VOICE_CONFIG); + JsonObject jsonObject = new JsonParser().parse(dataJson).getAsJsonObject(); + String productId = jsonObject.get("productId").getAsString(); + String apiKey = jsonObject.get("apiKey").getAsString(); + String productKey = jsonObject.get("productKey").getAsString(); + String productSecret = jsonObject.get("productSecret").getAsString(); + if(!StringUtil.isEmpty(productId) && !StringUtil.isEmpty(apiKey) && !StringUtil.isEmpty(productKey) && !StringUtil.isEmpty(productSecret)){ + DUILiteConfig config = new DUILiteConfig.Builder() + .setApiKey(apiKey) + .setProductId(productId) + .setProductKey(productKey) + .setProductSecret(productSecret) + .create(); + config.setExtraParameter("DEVICE_NAME", "abc123456def9876542"); + DUILiteSDK.init(getApplicationContext()); + // SDK 授权 + DUILiteSDK.doAuth(getApplicationContext(), config, new DUILiteSDK.InitListener() { + @Override + public void success() { + LoggerUtil.d("DUILiteSDKInit: ", "授权成功! "); + } + @Override + public void error(String errorCode,String errorInfo) { + LoggerUtil.d("DUILiteSDKInit: ", "授权失败, errorcode: "+errorCode+",errorInfo:"+errorInfo); + } + }); + }else{ + LoggerUtil.e("initSDK: ","语音授权码获取失败"); } - }); + }else{ + LoggerUtil.e("initSDK: ","语音激活码获取失败"); + } } } diff --git a/app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java b/app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java index 73cd47d..61b1a28 100644 --- a/app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java +++ b/app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java @@ -177,14 +177,18 @@ public class WebViewActivity extends BaseActivity { binding = DataBindingUtil.setContentView(this, R.layout.activity_webview); //设置密码 initPass(); - if("sbc".equals(Constant.TTSHome)){ - initASR(); - ttsUtil = new TTSUtil(); - ttsUtil.initTts(); - }else if("kdxf".equals(Constant.TTSHome)){ - initKXDFASR(); - kxdfttsUtil = new KDXFUtil(); - kxdfttsUtil.initTts(); + try{ + if("sbc".equals(Constant.TTSHome)){ + initASR(); + ttsUtil = new TTSUtil(); + ttsUtil.initTts(); + }else if("kdxf".equals(Constant.TTSHome)){ + initKXDFASR(); + kxdfttsUtil = new KDXFUtil(); + kxdfttsUtil.initTts(); + } + }catch(Exception e){ + LoggerUtil.e("语音ASR:","初始化失败!"); } } diff --git a/app/src/main/java/qianmu/container/app/Constant.java b/app/src/main/java/qianmu/container/app/Constant.java index 5e539fb..2f07a01 100644 --- a/app/src/main/java/qianmu/container/app/Constant.java +++ b/app/src/main/java/qianmu/container/app/Constant.java @@ -22,15 +22,15 @@ public class Constant { public static String screenType = "HDMI"; // 欣威视通3399设备为假关机 HDMI连接:可以用来判断是否为关机状态 LVDS连接:只能用定时关机时间来判断 public static boolean newGuide = false; // 指路机类型,true:新版指路机 false:老板指路机(流花) public static String mqttState = ""; // 屏幕连接方式 - public static String TTSHome=""; // sbc-思必驰 kdxf-科大讯飞 + 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 = "huidu"; //设备板子型号 huidu(灰度主板) 罗湖寻车机 + // public static String androidBoardType = "huidu"; //设备板子型号 huidu(灰度主板) 罗湖寻车机 // public static String androidBoardType = "bv"; //设备板子型号 Bv-3588M // public static String androidBoardType = "smt"; //设备板子型号 视美泰 diff --git a/app/src/main/java/qianmu/container/data/DeviceData.java b/app/src/main/java/qianmu/container/data/DeviceData.java index 4b3e091..47b09f4 100644 --- a/app/src/main/java/qianmu/container/data/DeviceData.java +++ b/app/src/main/java/qianmu/container/data/DeviceData.java @@ -81,6 +81,7 @@ public class DeviceData extends BaseData { 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"; //语音code + public static final String VOICE_CONFIG = "voice_config"; // 语音配置 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"; @@ -233,7 +234,8 @@ public class DeviceData extends BaseData { * 通过接口来判断网络是否正常 * */ public static void getMachine(QueryFinishListener finishListener) { - RetrofitUtil.getBaseService().getMachine(DeviceData.getDeviceInfo(HINT_DEVICE_CODE)).enqueue(new Callback() { + String mallCode = FloorData.getMallCode(); + RetrofitUtil.getBaseService().getMachine(mallCode,DeviceData.getDeviceInfo(HINT_DEVICE_CODE)).enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { try { @@ -250,9 +252,10 @@ public class DeviceData extends BaseData { if(jsonObject.get("voiceActivationCode") != null){ String voiceActivationCode = jsonObject.get("voiceActivationCode").getAsString(); DeviceData.saveDeviceInfo(DeviceData.VOICE_CODE, voiceActivationCode); //设备语音激活码 + String voiceActivationSourceConfig = jsonObject.get("voiceActivationSourceConfig").getAsString(); + DeviceData.saveDeviceInfo(DeviceData.VOICE_CONFIG, voiceActivationSourceConfig); //设备语音激活码 }else{ - String deviceCode = DeviceData.getDeviceInfo(DeviceData.HINT_DEVICE_CODE); - DeviceData.saveDeviceInfo(DeviceData.VOICE_CODE, deviceCode); //设备Code语音激活码 + DeviceData.saveDeviceInfo(DeviceData.VOICE_CODE, ""); } LoggerUtil.e("getMachine()", typeName); } @@ -370,8 +373,8 @@ public class DeviceData extends BaseData { * */ public static void getMachineOnOffTime(QueryPreparedListener preparedListener, QueryFinishListener finishListener) { if (preparedListener != null) preparedListener.onPrepared(); - - RetrofitUtil.getBaseService().getMachineOnOffTime(DeviceData.getDeviceInfo(HINT_DEVICE_CODE)).enqueue(new Callback() { + String mallCode = FloorData.getMallCode(); + RetrofitUtil.getBaseService().getMachineOnOffTime(mallCode,DeviceData.getDeviceInfo(HINT_DEVICE_CODE)).enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { try { @@ -432,7 +435,6 @@ public class DeviceData extends BaseData { } catch (Throwable t) { LoggerUtil.e("getPrimaryMachine", StringUtil.getThrowableStr(t)); } - if (finishListener != null) finishListener.onFinish(); } diff --git a/app/src/main/java/qianmu/container/http/retrofit/BaseService.java b/app/src/main/java/qianmu/container/http/retrofit/BaseService.java index 580150f..f9b8b3e 100644 --- a/app/src/main/java/qianmu/container/http/retrofit/BaseService.java +++ b/app/src/main/java/qianmu/container/http/retrofit/BaseService.java @@ -155,7 +155,7 @@ public interface BaseService { * @return */ @GET("api/device/v1/client/getMachine") - Call getMachine(@Query("code") String code); + Call getMachine(@Query("projectCode") String projectCode, @Query("code") String code); /** * 上传版本信息 @@ -217,7 +217,7 @@ public interface BaseService { * @return */ @GET("api/device/v1/deviceWeb/getMachineOnOffTime") - Call getMachineOnOffTime ( @Query("code") String code); + Call getMachineOnOffTime (@Query("projectCode") String projectCode, @Query("code") String code); /** * 天气 diff --git a/app/src/main/java/qianmu/container/mqtt/MQTTService.java b/app/src/main/java/qianmu/container/mqtt/MQTTService.java index 32092ce..fc9a50e 100644 --- a/app/src/main/java/qianmu/container/mqtt/MQTTService.java +++ b/app/src/main/java/qianmu/container/mqtt/MQTTService.java @@ -55,6 +55,7 @@ import java.security.KeyManagementException; import java.security.KeyPair; import java.security.KeyStore; import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; import java.security.Security; import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; @@ -213,10 +214,6 @@ public class MQTTService extends Service { Boolean retained = false; if ((!message.equals("")) || (!topic.equals(""))) { // 最后的遗嘱 - // MQTT本身就是为信号不稳定的网络设计的,所以难免一些客户端会无故的和Broker断开连接。 - //当客户端连接到Broker时,可以指定LWT,Broker会定期检测客户端是否有异常。 - //当客户端异常掉线时,Broker就往连接时指定的topic里推送当时指定的LWT消息。 - try { conOpt.setWill(topic, message.getBytes(), qos.intValue(), retained.booleanValue()); } catch (Exception e) { @@ -819,15 +816,10 @@ public class MQTTService extends Service { trustAllCerts[0]=tm; try { SSLContext sc = SSLContext.getInstance("SSL"); - try { - sc.init(null,trustAllCerts,null); - SSLSocketFactory factory = sc.getSocketFactory(); - conOpt.setSocketFactory(factory); - } catch (KeyManagementException e) { - Log.e("TAG","KeyManagementException:"+e.getMessage()); - e.printStackTrace(); - } - } catch (NoSuchAlgorithmException e) { + sc.init(null,trustAllCerts,new SecureRandom()); + SSLSocketFactory factory = sc.getSocketFactory(); + conOpt.setSocketFactory(factory); + } catch (Exception e) { Log.e("TAG","NoSuchAlgorithmException:"+e.getMessage()); e.printStackTrace(); } diff --git a/app/src/main/java/qianmu/container/view/CustomerVideoView.java b/app/src/main/java/qianmu/container/view/CustomerVideoView.java index 6893c79..ad2ee99 100644 --- a/app/src/main/java/qianmu/container/view/CustomerVideoView.java +++ b/app/src/main/java/qianmu/container/view/CustomerVideoView.java @@ -18,6 +18,7 @@ import androidx.annotation.NonNull; import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.MediaItem; import com.google.android.exoplayer2.PlaybackException; +import com.google.android.exoplayer2.PlaybackParameters; import com.google.android.exoplayer2.Player; import com.google.android.exoplayer2.SimpleExoPlayer; import com.google.android.exoplayer2.trackselection.DefaultTrackSelector; @@ -177,11 +178,6 @@ public class CustomerVideoView extends FrameLayout { if(playerView != null){ playerView.setAlpha(1f); } -// postDelayed(new Runnable() { -// @Override -// public void run() { -// } -// }, 100); } }); } @@ -278,9 +274,12 @@ public class CustomerVideoView extends FrameLayout { // 5. 视频控制相关方法 public void setVideoPath(String path) { if (player != null && path != null) { - MediaItem mediaItem = MediaItem.fromUri(path); - player.setMediaItem(mediaItem); - player.prepare(); + try { + MediaItem mediaItem = MediaItem.fromUri(path); + player.setMediaItem(mediaItem); + player.prepare(); + player.setPlaybackParameters(new PlaybackParameters(1.0f)); + } catch (Exception e) {} } }