update:解决device连接本地服务失败(SOCKET_NAME 和server_jar不匹配)

This commit is contained in:
rankun 2018-10-11 14:06:31 +08:00
parent ebc0ef2652
commit b54b1e01d2
4 changed files with 17 additions and 8 deletions

View file

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.6.2, 2018-10-11T09:21:46. -->
<!-- Written by QtCreator 4.6.2, 2018-10-11T13:13:22. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{49c3991c-71bb-4f46-826d-1d1cf5cba2d4}</value>
<value type="QByteArray">{37b22fe7-3e02-43d3-85e3-251a3ebe4093}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>

View file

@ -40,6 +40,7 @@ void AdbProcess::initSignals()
if (NormalExit == exitStatus && 0 == exitCode) {
emit adbProcessResult(AER_SUCCESS);
} else {
//P7C0218510000537 unauthorized ,手机端此时弹出调试认证,要允许调试
emit adbProcessResult(AER_ERROR_CMD);
}
@ -49,7 +50,7 @@ void AdbProcess::initSignals()
connect(this, &QProcess::errorOccurred, this,
[this](QProcess::ProcessError error){
if (QProcess::FailedToStart == error) {
if (QProcess::FailedToStart == error) {
emit adbProcessResult(AER_ERROR_MISSING_BINARY);
} else {
emit adbProcessResult(AER_ERROR_START);
@ -83,7 +84,7 @@ void AdbProcess::execute(const QString& serial, const QStringList& args)
adbArgs << "-s" << serial;
}
adbArgs << args;
qDebug() << adbArgs.join(" ");
qDebug() << getAdbPath() << adbArgs.join(" ");
start(getAdbPath(), adbArgs);
//start("C:\\Users\\Barry\\Desktop\\sockettool.exe", Q_NULLPTR);
}

View file

@ -9,7 +9,7 @@ int main(int argc, char *argv[])
{
QApplication a(argc, argv);
qputenv("QTSCRCPY_ADB_PATH", "C:\\Users\\Barry\\Desktop\\scrcpy-win64\\adb.exe");
qputenv("QTSCRCPY_ADB_PATH", "G:\\mygitcode\\QtScrcpy\\src\\adb.exe");
qputenv("QTSCRCPY_SERVER_PATH", "G:\\mygitcode\\QtScrcpy\\src\\scrcpy-server.jar");
Dialog w;

View file

@ -4,7 +4,8 @@
#include "server.h"
#define DEVICE_SERVER_PATH "/data/local/tmp/scrcpy-server.jar"
#define SOCKET_NAME "qtscrcpy"
//#define SOCKET_NAME "qtscrcpy" //jar需要同步修改
#define SOCKET_NAME "scrcpy"
Server::Server(QObject *parent) : QObject(parent)
{
@ -15,8 +16,11 @@ Server::Server(QObject *parent) : QObject(parent)
connect(m_deviceSocket, &QTcpSocket::disconnected, m_deviceSocket, &QTcpSocket::deleteLater);
//connect(m_deviceSocket, &QTcpSocket::error, m_deviceSocket, &QTcpSocket::deleteLater);
connect(m_deviceSocket, &QTcpSocket::readyRead, this, [this](){
qDebug() << "ready read";
m_deviceSocket->readAll();
static quint64 count = 0;
qDebug() << count << "ready read";
count++;
QByteArray ar = m_deviceSocket->readAll();
//m_deviceSocket->write(ar);
});
});
@ -122,6 +126,8 @@ bool Server::execute()
// }
// sender()->deleteLater();
// });
// adb -s P7C0218510000537 shell CLASSPATH=/data/local/tmp/scrcpy-server.jar app_process / com.genymobile.scrcpy.Server 0 8000000 false
// 这条adb命令是阻塞运行的workProcess不会退出了
m_workProcess.execute(m_serial, args);
return true;
}
@ -164,6 +170,8 @@ void Server::connectTo()
bool success = false;
if (m_tunnelForward) {
if (m_deviceSocket->isValid()) {
// connect will success even if devices offline, recv data is real connect success
// because connect is to pc adb server
QByteArray ar = m_deviceSocket->read(1);
if (!ar.isEmpty()) {
success = true;