diff --git a/app/src/main/java/qianmu/container/activity/H5/H5Data.java b/app/src/main/java/qianmu/container/activity/H5/H5Data.java index 6f02ff8..9e6a4cb 100644 --- a/app/src/main/java/qianmu/container/activity/H5/H5Data.java +++ b/app/src/main/java/qianmu/container/activity/H5/H5Data.java @@ -17,10 +17,18 @@ import com.lzy.okgo.callback.FileCallback; import org.greenrobot.eventbus.EventBus; import java.io.File; +import java.security.KeyStore; +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.List; import java.util.Map; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; + import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; @@ -331,7 +339,6 @@ public class H5Data extends BaseData { if(decryptDataJson.equals("解密失败")|| decryptDataJson.isEmpty()){ FileUtil.writeDataToFile(response, filePath, false); if(fileName.equals("getDevCoordinateByIP")){ - LoggerUtil.e("getDevCoordinateByIP()",response); //保存科大讯飞地址 saveKDXFData(response); @@ -353,14 +360,6 @@ public class H5Data extends BaseData { saveKDXFData(s); } } - -// FileUtil.writeDataToFile(response, filePath, false); -// if(fileName.equals("getDevCoordinateByIP")){ -// -// LoggerUtil.e("getDevCoordinateByIP()",response); -// //保存科大讯飞地址 -// saveKDXFData(response); -// } }else { LoggerUtil.e("导视接口报错:"+finalUrl, response); } diff --git a/app/src/main/java/qianmu/container/activity/program/MyPresentation.java b/app/src/main/java/qianmu/container/activity/program/MyPresentation.java index a8dde71..721b18c 100644 --- a/app/src/main/java/qianmu/container/activity/program/MyPresentation.java +++ b/app/src/main/java/qianmu/container/activity/program/MyPresentation.java @@ -4264,7 +4264,7 @@ class MyPresentation extends Presentation { @Override public void onResponse(Call call, Response response) { try { - + LoggerUtil.e("Weather:", String.valueOf(response.body().getData())); WeatherBean weatherbean = new Gson().fromJson(new Gson().toJson(response.body().getData()), new TypeToken() { }.getType()); diff --git a/app/src/main/java/qianmu/container/activity/program/ScreenSaverActivity.java b/app/src/main/java/qianmu/container/activity/program/ScreenSaverActivity.java index 3e5ca5c..c7a08f5 100644 --- a/app/src/main/java/qianmu/container/activity/program/ScreenSaverActivity.java +++ b/app/src/main/java/qianmu/container/activity/program/ScreenSaverActivity.java @@ -89,7 +89,7 @@ public class ScreenSaverActivity extends BaseActivity { static final int TYPE_HINT_PASSWORD = 3;// 隐藏密码输入框 static final int NOVA_HINT = 4;// 隐藏密码输入框 static final int SHOW_JXB = 5;// 机械臂轮播 - private WebSocket mWebSocket; + String TB40_password = "SN2008@+";// 华贸SN2008@+ int time = 0; @@ -179,63 +179,8 @@ public class ScreenSaverActivity extends BaseActivity { instance = (ViplexCore) Native.loadLibrary("viplexcore", ViplexCore.class); handler.sendEmptyMessageDelayed(NOVA_HINT, 5000); } - - ////////////////// webSocket - Log.e("WebSocket: ", "init"); - connectionWebSocket("localhost",50002); } - public void connectionWebSocket(String hostName, int port) { - // 创建OkHttpClient实例并设置PING帧发送间隔 - OkHttpClient httpClient = new OkHttpClient.Builder() - .pingInterval(40, TimeUnit.SECONDS) - .build(); - // 构建WebSocket连接URL - String webSocketUrl = "ws://" + hostName + ":" + port; - Request request = new Request.Builder() - .url(webSocketUrl) - .build(); - // 建立WebSocket连接 - httpClient.newWebSocket(request, new WebSocketListener() { - @Override - public void onOpen(WebSocket webSocket, okhttp3.Response response) { - super.onOpen(webSocket, response); - // WebSocket连接建立 - mWebSocket = webSocket; - Log.e("WEbSocket: ", "open"); - } - - @Override - public void onMessage(WebSocket webSocket, String text) { - super.onMessage(webSocket, text); - // 收到服务端发送来的String类型消息 - Log.e("WEbSocket: ", text); - } - - @Override - public void onClosing(WebSocket webSocket, int code, String reason) { - super.onClosing(webSocket, code, reason); - // 收到服务端发来的CLOSE帧消息,准备关闭连接 - Log.e("WEbSocket: ", "closing"); - } - - @Override - public void onClosed(WebSocket webSocket, int code, String reason) { - super.onClosed(webSocket, code, reason); - // WebSocket连接关闭 - Log.e("WEbSocket: ", "closed"); - } - - @Override - public void onFailure(WebSocket webSocket, Throwable t, okhttp3.Response response) { - super.onFailure(webSocket, t, response); - // 连接出错处理 - t.printStackTrace(); // 可以添加错误处理逻辑 - } - }); - } - - @Override protected void setListener() { binding.setting.setOnClickListener((view) -> { diff --git a/app/src/main/java/qianmu/container/app/MyApplication.java b/app/src/main/java/qianmu/container/app/MyApplication.java index d63187f..a8b5ab7 100644 --- a/app/src/main/java/qianmu/container/app/MyApplication.java +++ b/app/src/main/java/qianmu/container/app/MyApplication.java @@ -150,17 +150,44 @@ public class MyApplication extends Application { // 初始化下载框架 private void initOkGo() { try { - int currentApiVersion = android.os.Build.VERSION.SDK_INT; + // 创建一个信任所有证书的 TrustManager + TrustManager[] trustAllCerts = new TrustManager[]{ + new X509TrustManager() { + @Override + public void checkClientTrusted(X509Certificate[] chain, String authType) {} + + @Override + public void checkServerTrusted(X509Certificate[] chain, String authType) {} + + @Override + public X509Certificate[] getAcceptedIssuers() { + return new X509Certificate[0]; + } + } + }; + + // 初始化 SSLContext + SSLContext sslContext = SSLContext.getInstance("TLS"); + sslContext.init(null, trustAllCerts, new SecureRandom()); + OkHttpClient.Builder builder = new OkHttpClient.Builder(); builder.readTimeout(10, TimeUnit.SECONDS); builder.writeTimeout(10, TimeUnit.SECONDS); builder.connectTimeout(10, TimeUnit.SECONDS); - builder.sslSocketFactory(SSLSocketClient.getSSLSocketFactory(), SSLSocketClient.getX509TrustManager()); + builder.sslSocketFactory(sslContext.getSocketFactory(), (X509TrustManager) trustAllCerts[0]); builder.hostnameVerifier(SSLSocketClient.getHostnameVerifier()); OkHttpClient client = builder.build(); OkGo.getInstance().init(this).setOkHttpClient(client).setRetryCount(0); } catch (Throwable t) { LoggerUtil.e("initOkGo", StringUtil.getThrowableStr(t)); + OkHttpClient.Builder builder = new OkHttpClient.Builder(); + builder.readTimeout(10, TimeUnit.SECONDS); + builder.writeTimeout(10, TimeUnit.SECONDS); + builder.connectTimeout(10, TimeUnit.SECONDS); + builder.sslSocketFactory(SSLSocketClient.getSSLSocketFactory(), SSLSocketClient.getX509TrustManager()); + builder.hostnameVerifier(SSLSocketClient.getHostnameVerifier()); + OkHttpClient client = builder.build(); + OkGo.getInstance().init(this).setOkHttpClient(client).setRetryCount(0); } } // 页面常亮 diff --git a/app/src/main/java/qianmu/container/util/FileUtil.java b/app/src/main/java/qianmu/container/util/FileUtil.java index 8e733d4..7f5581d 100644 --- a/app/src/main/java/qianmu/container/util/FileUtil.java +++ b/app/src/main/java/qianmu/container/util/FileUtil.java @@ -179,24 +179,31 @@ public class FileUtil { try { String fileTotalLength = response.headers().get("Content-Range"); - //获取请求数据的总大小 - fileTotalLength = fileTotalLength.substring(fileTotalLength.lastIndexOf("/") + 1); - File tempFile = new File(localPath); - //读取本地保存文件大小 - String tempFileLength = String.valueOf(tempFile.length()); - //二者大小一致时 修改文件后缀名 - if (tempFile.length()!=0 &&fileTotalLength.equals(tempFileLength)) { + if( StringUtil.isEmpty(fileTotalLength)){ + File tempFile = new File(localPath); String targetPath = localPath.substring(0, localPath.lastIndexOf(".")); - if(targetPath.contains("?")){ - String[] split = targetPath.split("[?]"); - targetPath=split[0]; - } File targetFile = new File(targetPath); tempFile.renameTo(targetFile); - } else{ - Log.e("下载失败", localPath); - //本地文件大于待下载文件时 表示断点下载异常 删除已下载文件 - tempFile.delete(); + }else{ + //获取请求数据的总大小 + fileTotalLength = fileTotalLength.substring(fileTotalLength.lastIndexOf("/") + 1); + File tempFile = new File(localPath); + //读取本地保存文件大小 + String tempFileLength = String.valueOf(tempFile.length()); + //二者大小一致时 修改文件后缀名 + if (tempFile.length()!=0 &&fileTotalLength.equals(tempFileLength)) { + String targetPath = localPath.substring(0, localPath.lastIndexOf(".")); + if(targetPath.contains("?")){ + String[] split = targetPath.split("[?]"); + targetPath=split[0]; + } + File targetFile = new File(targetPath); + tempFile.renameTo(targetFile); + } else{ + Log.e("下载失败", localPath); + //本地文件大于待下载文件时 表示断点下载异常 删除已下载文件 + tempFile.delete(); + } } } catch (Throwable t) { LoggerUtil.e("downloadSuccess", StringUtil.getThrowableStr(t));