完成服务器连接与断开逻辑

This commit is contained in:
ZhanGSKen 2025-03-31 00:46:16 +08:00
parent 9d37de4bfc
commit 4f44034b72
4 changed files with 91 additions and 91 deletions

View File

@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Sun Mar 30 06:06:05 GMT 2025 #Sun Mar 30 16:43:08 GMT 2025
stageCount=2 stageCount=2
libraryProject=libaes libraryProject=libaes
baseVersion=15.2 baseVersion=15.2
publishVersion=15.2.1 publishVersion=15.2.1
buildCount=85 buildCount=91
baseBetaVersion=15.2.2 baseBetaVersion=15.2.2

View File

@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Sun Mar 30 06:06:05 GMT 2025 #Sun Mar 30 16:43:08 GMT 2025
stageCount=2 stageCount=2
libraryProject=libaes libraryProject=libaes
baseVersion=15.2 baseVersion=15.2
publishVersion=15.2.1 publishVersion=15.2.1
buildCount=85 buildCount=91
baseBetaVersion=15.2.2 baseBetaVersion=15.2.2

View File

@ -171,13 +171,13 @@ public class WinBollClientService extends Service implements IWinBollClientServi
while (mIsEnableService) { while (mIsEnableService) {
// 显示运行状态 // 显示运行状态
WinBollServiceStatusView.startConnection(); WinBollServiceStatusView.startConnection();
LogUtils.d(TAG, String.format("while mIsEnableService is %s", mIsEnableService));
try { try {
Thread.sleep(10 * 1000); Thread.sleep(10 * 1000);
} catch (InterruptedException e) { } catch (InterruptedException e) {
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
} }
LogUtils.d(TAG, "while syncWinBollClientThreadStatus");
syncWinBollClientThreadStatus(); syncWinBollClientThreadStatus();
} }

View File

@ -218,7 +218,7 @@ public class WinBollServiceStatusView extends LinearLayout {
String msg = "ClientIP<" + formattedDateTime + ">: " + text; String msg = "ClientIP<" + formattedDateTime + ">: " + text;
mWinBollServiceViewHandler.postMessageText(msg); mWinBollServiceViewHandler.postMessageText(msg);
mWinBollServiceViewHandler.postMessageConnectionStatus(true); mWinBollServiceViewHandler.postMessageConnectionStatus(true);
} }
@Override @Override
@ -263,91 +263,91 @@ public class WinBollServiceStatusView extends LinearLayout {
} }
/*void requestWithBasicAuth(final WinBollServiceViewHandler textViewHandler, String targetUrl, final String username, final String password) { /*void requestWithBasicAuth(final WinBollServiceViewHandler textViewHandler, String targetUrl, final String username, final String password) {
// 用户名和密码替换为实际的认证信息 // 用户名和密码替换为实际的认证信息
//String username = "your_username"; //String username = "your_username";
//String password = "your_password"; //String password = "your_password";
LogUtils.d(TAG, "requestWithBasicAuth(...)"); LogUtils.d(TAG, "requestWithBasicAuth(...)");
LogUtils.d(TAG, String.format("targetUrl %s", targetUrl)); LogUtils.d(TAG, String.format("targetUrl %s", targetUrl));
// 构建包含认证信息的请求 // 构建包含认证信息的请求
String credential = Credentials.basic(username, password); String credential = Credentials.basic(username, password);
LogUtils.d(TAG, String.format("credential %s", credential)); LogUtils.d(TAG, String.format("credential %s", credential));
OkHttpClient client = new OkHttpClient(); OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder() Request request = new Request.Builder()
.url(targetUrl) .url(targetUrl)
.header("Accept", "text/plain") // 设置正确的Content-Type头 .header("Accept", "text/plain") // 设置正确的Content-Type头
.header("Authorization", credential) .header("Authorization", credential)
.build(); .build();
Call call = client.newCall(request); Call call = client.newCall(request);
call.enqueue(new Callback() { call.enqueue(new Callback() {
@Override @Override
public void onFailure(Call call, IOException e) { public void onFailure(Call call, IOException e) {
// 处理网络请求失败 // 处理网络请求失败
setImageViewByConnection(mImageView, false); setImageViewByConnection(mImageView, false);
textViewHandler.postMessageText(e.getMessage()); textViewHandler.postMessageText(e.getMessage());
textViewHandler.postMessageConnectionStatus(false); textViewHandler.postMessageConnectionStatus(false);
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
//String sz = "请求失败,状态码: " + response.code(); //String sz = "请求失败,状态码: " + response.code();
//setImageViewByConnection(mImageView, false); //setImageViewByConnection(mImageView, false);
//LogUtils.d(TAG, sz); //LogUtils.d(TAG, sz);
} }
@Override @Override
public void onResponse(Call call, Response response) throws IOException { public void onResponse(Call call, Response response) throws IOException {
if (!response.isSuccessful()) { if (!response.isSuccessful()) {
setImageViewByConnection(mImageView, false); setImageViewByConnection(mImageView, false);
textViewHandler.postMessageText("Unexpected code " + response); textViewHandler.postMessageText("Unexpected code " + response);
textViewHandler.postMessageConnectionStatus(false); textViewHandler.postMessageConnectionStatus(false);
LogUtils.d(TAG, "Unexpected code " + response, Thread.currentThread().getStackTrace()); LogUtils.d(TAG, "Unexpected code " + response, Thread.currentThread().getStackTrace());
return; return;
} }
try { try {
// 读取响应体作为字符串注意这里可能需要解码 // 读取响应体作为字符串注意这里可能需要解码
String text = response.body().string(); String text = response.body().string();
LogUtils.d(TAG, "Develop Host Connection IP is : " + text); LogUtils.d(TAG, "Develop Host Connection IP is : " + text);
mConnectionStatus = ConnectionStatus.CONNECTED; mConnectionStatus = ConnectionStatus.CONNECTED;
// 获取当前时间 // 获取当前时间
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
// 定义时间格式 // 定义时间格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
// 按照指定格式格式化时间并输出 // 按照指定格式格式化时间并输出
String formattedDateTime = now.format(formatter); String formattedDateTime = now.format(formatter);
textViewHandler.postMessageText("ClientIP<" + formattedDateTime + ">: " + text); textViewHandler.postMessageText("ClientIP<" + formattedDateTime + ">: " + text);
textViewHandler.postMessageConnectionStatus(true); textViewHandler.postMessageConnectionStatus(true);
//org.jsoup.nodes.Document doc = org.jsoup.Jsoup.parse(text); //org.jsoup.nodes.Document doc = org.jsoup.Jsoup.parse(text);
//LogUtils.d(TAG, doc.text()); //LogUtils.d(TAG, doc.text());
// 使用id选择器找到具有特定id的元素 // 使用id选择器找到具有特定id的元素
//org.jsoup.nodes.Element elementWithId = doc.select("#LastRelease").first(); // 获取第一个匹配的元素 //org.jsoup.nodes.Element elementWithId = doc.select("#LastRelease").first(); // 获取第一个匹配的元素
// 提取并打印元素的文本内容 // 提取并打印元素的文本内容
//mszNewestAppPackageName = elementWithId.text(); //mszNewestAppPackageName = elementWithId.text();
//ToastUtils.delayedShow(text + "\n" + mszNewestAppPackageName, 5000); //ToastUtils.delayedShow(text + "\n" + mszNewestAppPackageName, 5000);
//mHandler.sendMessage(mHandler.obtainMessage(MSG_APPUPDATE_CHECKED)); //mHandler.sendMessage(mHandler.obtainMessage(MSG_APPUPDATE_CHECKED));
//System.out.println(response.body().string()); //System.out.println(response.body().string());
// mConnectionStatus = ConnectionStatus.CONNECTED; // mConnectionStatus = ConnectionStatus.CONNECTED;
// // 获取当前时间 // // 获取当前时间
// LocalDateTime now = LocalDateTime.now(); // LocalDateTime now = LocalDateTime.now();
// //
// // 定义时间格式 // // 定义时间格式
// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); // DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
// // 按照指定格式格式化时间并输出 // // 按照指定格式格式化时间并输出
// String formattedDateTime = now.format(formatter); // String formattedDateTime = now.format(formatter);
// //System.out.println(formattedDateTime); // //System.out.println(formattedDateTime);
// textViewHandler.postMessageText("ClientIP<" + formattedDateTime + ">: " + response.body().string()); // textViewHandler.postMessageText("ClientIP<" + formattedDateTime + ">: " + response.body().string());
// textViewHandler.postMessageConnectionStatus(true); // textViewHandler.postMessageConnectionStatus(true);
} catch (Exception e) { } catch (Exception e) {
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
} }
} }
}); });
}*/ }*/
class WinBollServiceViewHandler extends Handler { class WinBollServiceViewHandler extends Handler {
WinBollServiceStatusView mDevelopHostConnectionStatusView; WinBollServiceStatusView mDevelopHostConnectionStatusView;
@ -399,26 +399,26 @@ public class WinBollServiceStatusView extends LinearLayout {
mConnectionStatus = ConnectionStatus.START_CONNECT; mConnectionStatus = ConnectionStatus.START_CONNECT;
LogUtils.d(TAG, "startConnectionThread"); LogUtils.d(TAG, "startConnectionThread");
if (mConnectionThread != null) { if (mConnectionThread != null) {
LogUtils.d(TAG, "mConnectionThread != null");
mConnectionThread.mIsExist = true; mConnectionThread.mIsExist = true;
} }
mConnectionThread = new ConnectionThread(); mConnectionThread = new ConnectionThread();
mConnectionThread.start(); mConnectionThread.start();
} else if (mConnectionStatus == ConnectionStatus.CONNECTING) { } else if (mConnectionStatus == ConnectionStatus.CONNECTING) {
//LogUtils.d(TAG, "mConnectionStatus == ConnectionStatus.CONNECTING"); //LogUtils.d(TAG, "mConnectionStatus == ConnectionStatus.CONNECTING");
} else if (mConnectionStatus == ConnectionStatus.CONNECTED) {
//LogUtils.d(TAG, "mConnectionStatus == ConnectionStatus.CONNECTED");
} else { } else {
LogUtils.d(TAG, "Unknow mConnectionStatus, can not start ConnectionThread."); LogUtils.d(TAG, String.format("Unknow mConnectionStatus %s, can not start ConnectionThread.", mConnectionStatus));
} }
} }
void stopConnectionThread() { void stopConnectionThread() {
if (mConnectionStatus == ConnectionStatus.CONNECTED) { LogUtils.d(TAG, "stopConnectionThread");
LogUtils.d(TAG, "stopConnectionThread"); if (mConnectionThread != null) {
if (mConnectionThread != null) { LogUtils.d(TAG, "mConnectionThread != null");
mConnectionThread.mIsExist = true; mConnectionThread.mIsExist = true;
mConnectionThread = null; mConnectionThread = null;
}
} else {
LogUtils.d(TAG, "Unknow mConnectionStatus, can not start ConnectionThread.");
} }
} }