跳到主要内容
版本:3.0.2

设备控制

警告

若要启用设备控制,你需要打开 X.X.T. 应用程序 -> 更多 -> 远程访问

批量控制你的 iPhone 设备集群是 XXTouchNG 一个很重要的功能。你可以通过 XXTouchNG 的 OpenAPI 协议,对你的设备集群进行批量操作,比如:

  • 初始化设备
  • 批量上传、运行或停止脚本
  • 安装或卸载应用
  • 注销或重启设备
  • 收集日志
  • ……

OpenAPI

OpenAPI 是 XXTouchNG 提供的一套基于 HTTP 的控制协议,你可以通过 HTTP 请求来控制你的设备集群。
最新的 OpenAPI 版本为 v3。我们推荐你使用 Postman 来测试 OpenAPI。

XXTouchNG 也同时支持 XXTouch、触摸精灵触动精灵 的 OpenAPI 协议:

提示

如果你希望 XXTouchNG 支持更多的 OpenAPI 协议,或者支持你已有的群控系统,请联系你的销售代表获取报价。

编写控制软件

正如你所看到的,XXTouchNG VSCode 插件提供了一个简易的界面,让你可以在 VSCode 中对选定的单台设备进行控制。

XXTouch 云控 基于 触摸精灵开源版云控 进行修改,提供了一个更加强大的跨平台 Electron 界面,让你可以对局域网内的多台设备进行扫描和批量控制。同时也支持客户端/服务器反转,让你可以在广域网对设备集群进行远程控制。

XXT 局域网控制器(aardio 版)是一个基于 aardio 开发的、简易的 Windows 局域网控制器示例,你可以通过它来学习如何编写控制软件。

试一试!局域网扫描

在 VSCode 工作区新建 broadcast-scan.py Python 脚本,输入以下内容:

broadcast-scan.py
# -*- coding: utf-8 -*-
import socket, json

local_ip = '192.168.2.174' # 电脑端地址
local_port = 31500

local = (local_ip, local_port)
remote = ("255.255.255.255", 46953)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(local)

s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.sendto(json.dumps({"ip":local_ip, "port": local_port}).encode(), remote)

# 接收广播, 接收到的数据是 json 格式的
# ipv4 + ipv6, 过滤掉不需要的数据
while True:
data, addr = s.recvfrom(2048)
if not data:
nLog("client has exist")
break
nLog("received", data, "from", addr)

s.close()

运行脚本,你的 Mac 电脑会向局域网内的所有设备的 46953 端口发送一个 UDP 广播,告诉他们你的 IP 地址和端口号。装有 XXTouchNG 的 iPhone 设备会回复一个 JSON 格式的数据,包含了设备的信息,比如:

{
"devmac": "90:8c:43:79:0a:55",
"devtype": "iPhone12,8",
"deviceid": "00008030-000531841483802E",
"ip": "192.168.2.33",
"hwmodel": "D79AP",
"port": 46952,
"devname": "RachelSE143",
"sysversion": "14.3",
"zeversion": "3.0.1",
"devsn": "FFWCK2F3PLK7"
}

你将在终端看到这些响应数据,使用这些数据来过滤出目标设备,随后通过 OpenAPI 的其他接口控制你的设备集群。

信息

使用 Ctrl + C 组合键终止上述 Python 脚本。