Kivy konvertierte die Android -App, die die Fernbedienung ermöglichtAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 Kivy konvertierte die Android -App, die die Fernbedienung ermöglicht

Post by Anonymous »

Ich habe eine echte Stute, die versucht, eine Fernbedienung oder DPAD zu bearbeiten, um die Menüs in meiner Kivy -App auf Android -APK zu scrollen. Egal was ich versuche, ich kann einfach nicht in der Lage sein, eine Fernbedienung zu bekommen, oder DPAD, um die Menüs /Schaltflächen zu scrol /braps auf dem App auf den Weg zu machen. Händel < /p>
from kivy.app import App
from kivy.core.window import Window
from kivy.uix.button import Button

try:
from android import log
except ImportError:
def log(tag, msg): print(f"[{tag}] {msg}") # fallback for desktop

# 🚀 The Ultimate Key Mapping Dictionary
KEYCODE_MAP = {
19: 'up', # KEYCODE_DPAD_UP
20: 'down', # KEYCODE_DPAD_DOWN
21: 'left', # KEYCODE_DPAD_LEFT
22: 'right', # KEYCODE_DPAD_RIGHT
23: 'select', # KEYCODE_DPAD_CENTER

273: 'up',
274: 'down',
275: 'right',
276: 'left',
13: 'select',

96: 'select',
97: 'back',
99: 'select',
100: 'menu',
109: 'back',
110: 'back',
108: 'select',
106: 'right',
105: 'left',
66: 'select',
160: 'select',
4: 'back',
82: 'menu',
111: 'escape',

7: 'select',
8: 'select',
9: 'select',
10: 'select',
11: 'select',
12: 'select',
13: 'select',
14: 'select',
15: 'select',
16: 'select',

85: 'pause',
126: 'play',
127: 'pause',
86: 'stop',
87: 'next',
88: 'prev',
165: 'info',
}

class TVKeyHandler:
def __init__(self, app):
self.app = app # Pass in SportsApp instance

def handle_key(self, keycode):
action = KEYCODE_MAP.get(keycode)
log("remote-event", f"KEY RECEIVED: {keycode} → {action}")
focused = self.get_focused()

if not focused:
log("remote-event", "⚠️ No focused widget — attempting fallback")
try:
screen = self.app.root.get_screen('MainScreen')
screen.ids.today_button.focus = True
log("remote-event", "✅ Focus restored to today_button")
return True
except Exception as e:
log("remote-event", f"❌ Focus recovery failed: {e}")
return False
if not action:
log("remote-event", f"Unhandled keycode: {keycode}")
return False

if action == 'up':
focused.focus_previous('up')
elif action == 'down':
focused.focus_next('down')
elif action == 'right':
focused.focus_next('right')
elif action == 'left':
focused.focus_previous('left')
elif action == 'select':
if isinstance(focused, Button):
focused.trigger_action(duration=0.1)
elif action == 'back' or action == 'escape':
App.get_running_app().stop()
elif action == 'menu':
log("remote-event", "Menu button pressed — implement overlay or settings")
else:
log("remote-event", f"Unhandled mapped action: {action}")
return False

return True

def get_focused(self):
from kivy.core.window import Window
return Window.focused_widget or None
< /code>
Ich habe versucht, einen benutzerdefinierten Android -Key -Listeaner einzurichten. Wenn ich über ADB Befehle sende, funktioniert die Menüs, aber die Verwendung der Fernbedienung hat einfach nichts. Gibt es eine Lösung? Ich habe Google ausprobiert und ich kann einfach nicht viel dokumentiert finden, um DPAD- oder Fernbedienungen zu verwenden. Ist es also überhaupt möglich? Vermisse ich etwas sehr Einfaches?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post