API de duplicación de pantalla extrema
Extreme Screen Mirroring utiliza WebSocket como API para proporcionar capacidades de interfaz ( solo se puede usar después de iniciar sesión en la cuenta, no está disponible para usuarios gratuitos )
WebSocket API es una interfaz API de protocolo HTTP común y universal que admite llamadas en varios idiomas, como: Button Wizard, Easy Language, C++, Python, Html, Vue, Node.js, etc. . .
  • Dirección API WebSocket de screencasting extremo: ws://127.0.0.1:33332
  • Prueba en línea de WebSocket: https://wstool.js.org/
  • Demostración HTML: https://drive.google.com/file/d/1p1WUy7iI2LNRvwm9nQefcowmE9XgMXPp/view?usp=sharing

Obtener toda la información del dispositivo

preguntar:
{ "action":"list" }
respuesta:
{ "StatusCode": 200, "result": [ { "deviceId": "ga7d65ylnj6xinhm", "name": "ga7d65ylnj6xinhm", "no": 1 }, { "deviceId": "VBJDU18B14001987", "name": "VBJDU18B14001987", "no": 24 } ] }

captura de pantalla

preguntar:
{ "action": "screen", "comm": { "deviceIds": "all", "savePath": "d:/quickmirror", "onlyDeviceName": 1 } }
  • DeviceIds: "all" significa todos los dispositivos; también puede especificar el dispositivo pasando el ID de dispositivo separado por comas, como "ga7d65ylnj6xinhm,VBJDU18B14001987"
  • onlyDeviceName: si se debe utilizar directamente el número de serie del dispositivo como nombre del archivo de captura de pantalla
    • 1 significa que el nombre del archivo de captura de pantalla solo tiene el número de serie del dispositivo (por ejemplo, ga7d65ylnj6xinhm.png ).
    • 0 significa que el nombre del archivo de captura de pantalla incluye el número de serie del dispositivo y la hora de la captura de pantalla (por ejemplo, 1_ga7d65ylnj6xinhm_20240707_114500_096.png ).
  • Nota: Si se trata de una conexión inalámbrica, : y . en el número de serie del dispositivo se reemplazarán por _ (por ejemplo, el nombre del archivo de captura de pantalla del dispositivo 192.168.2.109:5555 es 1_192_168_2_109_5555_20240707_114919_656.png ).
 
 
respuesta:
{ "StatusCode": 200, "result": "OK" }

control de pantalla

preguntar:
{ "action": "PointerEvent", "comm": { "deviceIds": "all", "mask": "0", "x": "0.5", "y": "0.5", "endx": "0", "endy": "0", "delta": "0" } }
  • DeviceIds: "all" significa todos los dispositivos; también puede especificar el dispositivo pasando el ID de dispositivo separado por comas, como "ga7d65ylnj6xinhm,VBJDU18B14001987"
  • máscara: Tipo de evento: 0 presionar, 1 mover, 2 soltar, 3 botón derecho del mouse (regresar), 4 rueda arriba, 5 rueda abajo, 6 deslizar hacia arriba, 7 deslizar hacia abajo, 8 deslizar hacia la izquierda, 9 deslizar hacia la derecha
  • x, y: coordenadas del evento, porcentaje de aprobación, el rango es 0-1
  • endx, endy: coordenadas finales Solo los eventos deslizantes hacia arriba, abajo, izquierda y derecha requieren estos dos parámetros. No es necesario pasar otros eventos.
  • delta: la amplitud del evento de la rueda, el rango es un número entero mayor que 0. Cuanto mayor sea el valor, mayor será el rango de rodamiento de la rueda. Este parámetro solo es necesario para los eventos de la rueda y no es necesario pasarlo para otros. eventos.
respuesta:
{ "StatusCode": 200, "result": "OK" }
Ejemplo:
Desliza la pantalla hacia arriba
//先执行按下mask=0 x=0.5 y=0.5 从中间位置开始{ "action": "PointerEvent", "comm": { "deviceIds": "all", "mask": "0", "x": "0.5", "y": "0.5", "endx": "0", "endy": "0", "delta": "0" } } //执行移动mask=1 y移动到0.2位置松开前可执行多个移动就会变成拖动{ "action": "PointerEvent", "comm": { "deviceIds": "all", "mask": "1", "x": "0.5", "y": "0.2", "endx": "0", "endy": "0", "delta": "0" } } //最后松开mask=2 xy 传最后移动到的位置{ "action": "PointerEvent", "comm": { "deviceIds": "all", "mask": "2", "x": "0.5", "y": "0.2", "endx": "0", "endy": "0", "delta": "0" } }

Obtener el contenido del portapapeles

preguntar:
{ "action": "getclipboard", "comm": { "deviceIds": "8318fc66" } }
  • DeviceIds: este comando no admite varios DeviceIds de teléfonos móviles.
 
respuesta:
{ "StatusCode": 200, "result": "剪切板测试" }

Enviar al portapapeles

preguntar:
{ "action": "writeclipboard", "comm": { "deviceIds": "all", "content": "Hi,QuickMirror" } }
  • DeviceIds: "all" significa todos los dispositivos; también puede especificar el dispositivo pasando el ID de dispositivo separado por comas, como "ga7d65ylnj6xinhm,VBJDU18B14001987"
 
respuesta:
{ "StatusCode": 200, "result": "OK" }

Ejecutar comando ADB

preguntar:
{ "action": "adb", "comm": { "command": "am start -a android.intent.action.VIEW -d https://blog.csdn.net/rankun1/article/details/87970523", "deviceIds": "ga7d65ylnj6xinhm" } }
  • DeviceIds: "all" significa todos los dispositivos; también puede especificar el dispositivo pasando el ID de dispositivo separado por comas, como "ga7d65ylnj6xinhm,VBJDU18B14001987"
 
respuesta:
{ "StatusCode": 200, "result": { "ga7d65ylnj6xinhm": [ "Starting: Intent { act=android.intent.action.VIEW dat=https://www.aa.app/... }" ] } }