-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProcessExecutor.hpp
More file actions
76 lines (47 loc) · 1.69 KB
/
Copy pathProcessExecutor.hpp
File metadata and controls
76 lines (47 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#ifndef PROCESSEXECUTOR_HPP
#define PROCESSEXECUTOR_HPP
#include <QObject>
#include <QProcess>
#include <QString>
#include <QTimer>
#include "GlobalDefinition.hpp"
class ProcessExecutor : public QObject {
Q_OBJECT
public:
explicit ProcessExecutor(QObject *parent = nullptr);
void initDebugPort(std::function<void(bool)> callback);
void restartAdb();
void disconnectDevice();
void resolveLauncherActivity(
const QString &packageName,
std::function<void(const QString &activity)> callback);
/// -------------- 以下函数均需要指定设备,否则不生效 --------------
void connectDevice(const QString &deviceIp);
void getConnectedDeviceName(std::function<void(QString)> callback);
void wakeUpDevice();
void captureScreen();
void openTargetApp(const QString activity);
void killTargetApp(const QString &packageName);
void screenOff();
signals:
void signalExecutorNotFound();
void signalConnectStateChanged(ConnectState state);
void signalDeviceWokenUp();
void signalScreenCaptured(const QString &filePath);
void signalCaptureFailed(const QString &message);
void signalOpenAppSuccess();
void signalOpenAppFailed(const QString &message);
private:
QTimer *chekTimerPtr = nullptr;
QString connectedDevice;
// 追踪上次状态
ConnectState lastKnownState = ConnectState::Disconnected;
bool firstCheckDone = false;
QString selectExecutor();
// 条件化添加 -s <device>,当 connectedDevice 为空时不添加,让 adb 自动选设备
QStringList appendArgs(const QStringList &args) const;
void startPeriodicCheck(int intervalMs = 3000);
void checkConnectState();
void stopPeriodicCheck();
};
#endif // PROCESSEXECUTOR_HPP