From 7732d4f464f0670349402e47caeec04c17a9a8c7 Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期六, 24 一月 2026 10:25:34 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/TvDeviceServiceImpl.java | 72 ++++++++++++++++++++++++++++++++++++
1 files changed, 72 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/TvDeviceServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TvDeviceServiceImpl.java
index 136ccf8..fee9a9b 100644
--- a/src/main/java/com/zy/asrs/service/impl/TvDeviceServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/TvDeviceServiceImpl.java
@@ -334,6 +334,78 @@
return base64Image;
}
+ @Override
+ public String stopApp(Long deviceId, String packageName) throws Exception {
+ TvDevice device = this.selectById(deviceId);
+ if (device == null) {
+ throw new RuntimeException("璁惧涓嶅瓨鍦�");
+ }
+
+ String pkg = (packageName != null && !packageName.trim().isEmpty()) ? packageName.trim() : defaultPackage;
+ StringBuilder result = new StringBuilder();
+ String adbAddress = device.getAdbAddress();
+
+ // 鍏堣繛鎺ヨ澶�
+ String connectResult = executeAdbCommand("connect", adbAddress);
+ result.append("杩炴帴: ").append(connectResult).append("\n");
+
+ if (connectResult.contains("failed")) {
+ device.setStatus((short) 0);
+ device.setUpdateTime(new Date());
+ this.updateById(device);
+ throw new RuntimeException("杩炴帴璁惧澶辫触: " + connectResult);
+ }
+
+ Thread.sleep(500);
+
+ // 浣跨敤am force-stop鍏抽棴搴旂敤
+ String stopResult = executeAdbCommand("-s", adbAddress, "shell", "am", "force-stop", pkg);
+ result.append("鍏抽棴: ").append(stopResult.isEmpty() ? "鎴愬姛" : stopResult);
+
+ // 鏇存柊璁惧鐘舵��
+ device.setStatus((short) 1);
+ device.setLastConnectTime(new Date());
+ device.setUpdateTime(new Date());
+ this.updateById(device);
+
+ log.info("璁惧 {} 鍏抽棴搴旂敤 {} 鎴愬姛", device.getName(), pkg);
+ return result.toString();
+ }
+
+ @Override
+ public String restartApp(Long deviceId, String packageName) throws Exception {
+ StringBuilder result = new StringBuilder();
+
+ // 鍏堝叧闂簲鐢�
+ String stopResult = stopApp(deviceId, packageName);
+ result.append("銆愬叧闂簲鐢ㄣ�慭n").append(stopResult).append("\n\n");
+
+ // 绛夊緟1绉掔‘淇濆簲鐢ㄥ畬鍏ㄥ叧闂�
+ Thread.sleep(1000);
+
+ // 鍐嶅惎鍔ㄥ簲鐢�
+ String launchResult = launchApp(deviceId, packageName);
+ result.append("銆愬惎鍔ㄥ簲鐢ㄣ�慭n").append(launchResult);
+
+ return result.toString();
+ }
+
+ @Override
+ public List<String> batchRestartApp(List<Long> deviceIds, String packageName) {
+ List<String> results = new ArrayList<>();
+ for (Long deviceId : deviceIds) {
+ TvDevice device = this.selectById(deviceId);
+ String deviceName = device != null ? device.getName() : "ID:" + deviceId;
+ try {
+ String result = restartApp(deviceId, packageName);
+ results.add(deviceName + ": 閲嶅惎鎴愬姛\n" + result);
+ } catch (Exception e) {
+ results.add(deviceName + ": 閲嶅惎澶辫触 - " + e.getMessage());
+ }
+ }
+ return results;
+ }
+
/**
* 鎵цADB鍛戒护
*/
--
Gitblit v1.9.1