מערכת שליטה מרחוק
מודול השליטה מרחוק מאפשר למנהלים לשלוט במכשירי Android TV מרחוק באמצעות פקודות WebSocket. זה קריטי לפתרון תקלות במסכים ללא גישה פיזית.
ארכיטקטורה
- Session: "הפעלה" נוצרת בין
controllerId(דפדפן המנהל) ל-deviceId. - WebSocket: פקודות נשלחות דרך HTTP/WebSocket לשרת, שמעביר אותן למכשיר דרך MQTT או חיבור socket ישיר.
- מחוות (Gestures): המערכת תומכת במחוות מורכבות (Tap, Swipe, Pinch, Rotate).
פקודות API
ניהול הפעלה (Session)
-
התחלת הפעלה:
POST /remote-control/:deviceId/session/start- דורש
controllerId. - משמש לנעילת שליטה במכשיר למנהל ספציפי.
- דורש
-
סיום הפעלה:
POST /remote-control/:deviceId/session/end- משחרר את הנעילה.
ביצוע פקודות
הבקר תומך בשליחת מחוות ספציפיות:
tap: לחיצה בקואורדינטות x/y.swipe: גרירה מ-startX/Y ל-endX/Y עם משך זמן.keypress: שליחת קודי מקש אנדרואיד (Home, Back, D-Pad).input: שליחת קלט טקסט לשדה ממוקד.
דוגמאות שימוש
לחיצה על כפתור
POST /remote-control/device123/command
{
"action": "tap",
"x": 500,
"y": 300
}
גלילה למטה
POST /remote-control/device123/command
{
"action": "swipe",
"startX": 500,
"startY": 800,
"endX": 500,
"endY": 200,
"duration": 300
}
לחצן Home
POST /remote-control/device123/command
{
"action": "keypress",
"keyCode": "KEYCODE_HOME"
}
פתרון תקלות
- בדיקת סטטוס:
GET /remote-control/:deviceId/status- מאמת אם המכשיר מחובר ומאזין לפקודות.
- זמן השהיה: פקודות צריכות להיות כמעט מיידיות (פחות מ-200ms). זמן השהיה גבוה מעיד על בעיות רשת בצד המכשיר.
אבטחה
דורש הרשאת MANAGE_REMOTE_CONTROL.
רק מכשירים מחוברים (online) ניתנים לשליטה.
הגבלות
- הפעלה אחת בכל פעם: רק מנהל אחד יכול לשלוט במכשיר בו-זמנית.
- Timeout: הפעלות פגות תוקף לאחר 5 דקות של חוסר פעילות.
- רישום: כל פקודה נרשמת ב-
CommandHistoryלצורך ביקורת.