Skip to content

Commit c879a7e

Browse files
committed
feat: 补全缺失的无线连接功能
1 parent 9a6f70d commit c879a7e

File tree

3 files changed

+49
-33
lines changed

3 files changed

+49
-33
lines changed

src/cpp/adb/connectmanager.cpp

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "src/cpp/adb/adbtools.h"
77
#include "src/cpp/adb/device.h"
88
#include "src/cpp/adb/fastbootdevice.h"
9+
#include "src/cpp/utils/utils.hpp"
910

1011
namespace ADT {
1112

@@ -80,6 +81,47 @@ void ConnectManager::requestSetCutFastbootDevice(const QString &deviceCode)
8081
}
8182
}
8283

84+
void ConnectManager::requestPairDevice(const QString &ipPort, const QString &pairCode)
85+
{
86+
if (ipPort.isEmpty()) {
87+
NotificationController::instance()->send("配对失败", "ip和端口不能为空");
88+
return;
89+
}
90+
if (pairCode.isEmpty()) {
91+
NotificationController::instance()->send("配对失败", "请输入配对码");
92+
return;
93+
}
94+
95+
NotificationController::instance()->send("配对中", "请耐心等待", NotificationController::Info);
96+
97+
asyncOperator([ipPort, pairCode, this](){
98+
auto retStr = ADBTOOL->executeCommand(ADBTools::ADB, {"pair", ipPort}, pairCode).simplified();
99+
if (retStr.contains("Success")) {
100+
NotificationController::instance()->send("配对成功", "请进行下一步");
101+
} else {
102+
NotificationController::instance()->send("配对失败", "配对失败,请检查信息是否填写正确", NotificationController::Error);
103+
}
104+
});
105+
}
106+
107+
void ConnectManager::requestConnectDevice(const QString &ipPort)
108+
{
109+
if (ipPort.isEmpty()) {
110+
NotificationController::instance()->send("连接失败", "ip和端口不能为空", NotificationController::Warning);
111+
return;
112+
}
113+
114+
NotificationController::instance()->send("连接中", "请耐心等待", NotificationController::Info);
115+
116+
asyncOperator([ipPort, this](){
117+
auto retStr = ADBTOOL->executeCommand(ADBTools::ADB, {"connect", ipPort}).simplified();
118+
NotificationController::instance()->send("返回信息", retStr);
119+
if (!retStr.contains("connected")) {
120+
NotificationController::instance()->send("连接失败", "请检查信息是否填写正确", NotificationController::Error);
121+
}
122+
});
123+
}
124+
83125
void ConnectManager::refreshDevice()
84126
{
85127
if (enableADBCheck()) {

src/cpp/adb/connectmanager.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ class ConnectManager : public QObject
2929
Q_INVOKABLE void requestSetCutADBDevice(const QString &deviceCode);
3030
Q_INVOKABLE void requestSetCutFastbootDevice(const QString &deviceCode);
3131

32+
Q_INVOKABLE void requestPairDevice(const QString &ipPort, const QString &pairCode);
33+
Q_INVOKABLE void requestConnectDevice(const QString &ipPort);
34+
3235
signals:
3336
void deviceDisconnected(QSharedPointer<Device> device);
3437
void deviceConnected(QSharedPointer<Device> device);
@@ -46,4 +49,4 @@ class ConnectManager : public QObject
4649
QVector<QSharedPointer<FastbootDevice>> m_fastbootDeviceList;
4750
QTimer *m_deviceCheckTimer;
4851
};
49-
} // namespace ADT
52+
} // namespace ADT

src/qml/components/LeftBar.qml

Lines changed: 3 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -6,42 +6,13 @@ import QtQuick.Effects
66
import Qt5Compat.GraphicalEffects
77
import App
88
import NotificationController 1.0
9+
import ConnectManager
910

1011
Item {
1112
id: sideBar
1213
property var backImage
1314
property int radius: 12
1415

15-
// 添加无线连接功能的JavaScript函数
16-
function pairDevice(ipPort, pairCode) {
17-
if (!ipPort || !pairCode) {
18-
NotificationController.send("配对失败", "请填写IP端口和配对码", 3, 3000)
19-
return
20-
}
21-
22-
NotificationController.send("正在配对", "正在配对设备 " + ipPort, 1, 2000)
23-
24-
// 这里可以使用Qt.createQmlObject创建QProcess或通过其他方式调用adb命令
25-
// 简化实现:显示提示信息
26-
Qt.callLater(function() {
27-
NotificationController.send("配对请求已发送", "请在设备上确认配对", 1, 4000)
28-
})
29-
}
30-
31-
function connectDevice(ipPort) {
32-
if (!ipPort) {
33-
NotificationController.send("连接失败", "请填写IP端口", 3, 3000)
34-
return
35-
}
36-
37-
NotificationController.send("正在连接", "正在连接设备 " + ipPort, 1, 2000)
38-
39-
// 简化实现:显示提示信息
40-
Qt.callLater(function() {
41-
NotificationController.send("连接请求已发送", "请稍等片刻...", 1, 3000)
42-
})
43-
}
44-
4516
MultiEffect {
4617
id: effect
4718
anchors.fill: parent
@@ -290,7 +261,7 @@ Item {
290261
btnType: MButton.FBtnType.Suggest
291262
text: "配对设备"
292263
onClicked: {
293-
sideBar.pairDevice(pairEdit.editItem.text, pairCodeEdit.editItem.text)
264+
ConnectManager.requestPairDevice(pairEdit.editItem.text, pairCodeEdit.editItem.text)
294265
}
295266
}
296267
}
@@ -309,7 +280,7 @@ Item {
309280
btnType: MButton.FBtnType.Suggest
310281
text: "连接设备"
311282
onClicked: {
312-
sideBar.connectDevice(connectEdit.editItem.text)
283+
ConnectManager.requestConnectDevice(connectEdit.editItem.text)
313284
}
314285
}
315286
}

0 commit comments

Comments
 (0)