Menü erstellen und über Tastendruck Menüpunkt wählen

T

the-unknown

Dauergast
83
Hallo zusammen,

Mir fiel leider kein besserer Titel ein, danke das ihr hier gelandet seid.

Folgendes Problem:

- ein Auslöser (taste) soll ein Menü öffnen
- darin einige Apps aufgelistet
- gleicher Auslöser (anders wüsste ich es gerade nicht zu regeln) erneut geht zum nächsten Menüpunkt
- Menüpunkt gewählt ohne das Auslöser erneut ausgelöst wird --> App wird geöffnet

Kurz zum Hintergrund
Soll ein "Mode Auswahl Menü" für mein Autoradio werden, da dieses die Apps selbst leider nur der Reihe nach durchschaltet.

So in etwa sah das damals beim parrot Asteroid Smart aus ( siehe Anlage)

Jemand einen Denkanstoß für mich?

Mein Problem liegt vor allem im Wechsel von einem zum nächsten Menüpunkt

Danke und Gruß Christoph
 

Anhänge

  • Parrot-Asteroid-5.jpg
    Parrot-Asteroid-5.jpg
    24,5 KB · Aufrufe: 184
@the-unknown
Moin du könnest dir mit mehreren Scenen ein Menü bauen.
Nur das mit dem Knopf verstehe ich nicht ganz, meinst du ein Harwareknopf? Ist das Display nicht bedienbar?
 
An Scenen hatte ich auch schon gedacht, habe nur noch nicht die Muße gefunden, mich richtig damit zu beschäftigen. Habe bisher immer mit Alarm --> Menü gearbeitet und getestet.

Ich möchte halt durch Knopfdruck am Lenkrad die Quelle im Menü wählen, die ich hören möchte.

Notfalls kann ich einfach am Touch im Menü auswählen. Aber das ist eben nicht Sinn des Projektes :)
 
@the-unknown
hast du denn die Lenkradknöpfe mit Tasker als Profilbedienung abgreifen können?
zB via Profil - Ereignis - System - Logcat Entry?
 
Ich habe einen weg drauf zu zu greifen
Nutze das schon für eine andere Sache :)

Mache das aber über einen Umweg. Tasker selbst kann leider nicht auf die Tasten zugreifen weshalb ich eine Benachrichtigung erstellen lassen, die dann als Auslöser dient
 
Zuletzt bearbeitet:
Hallo zusammen,

Habe es hinbekommen, sogar deutlich simpler als erwartet. Meine ersten Versuche waren alle viel zu komplex

Im Anhang das Projekt. Falls jemand etwas damit kann.

Muss nur eine Sache noch an mein Radio adaptieren, und das ist der Auslöser. Aber da der Task selbst mein Problem war, ist jetzt alles klar :)
 

Anhänge

  • Quellen.prj.xml
    26 KB · Aufrufe: 30
  • Danke
Reaktionen: Spardas
Das wäre meine Umsetzung mit Autoinput.

Um die App per Touchscreen zu starten muss auf den entsprechenden Menüpunkt lange gedrückt werden.

Falls weitere Punkte zum Menü hinzugefügt werden, müssen folgende Sachen bearbeitet werden:
In der Szene muss beim Element MENÜ bei EINTRÄGE der neue Punkt hinzugefügt werden (ohne Aktion) und bei EINTRAG LANGER KLICK die Aufgabe Lade Applikation mit der entsprechenden If-Bedinung angefügt werden.
Im Task muss bei der 1. Aufgabe Array Set die selbe Bezeichnung wie in der Szene des Menüpunkts hinzugefügt werden und am Ende des Task muss die Aufgabe Lade Applikation mit der entsprechenden If-Bedinung angefügt werden.

Import Projekt
Code:
    Start Menü (80)
        Aktuellen Task abbrechen
        A1: Array Set [ Variable Array:%quellen Values:Deezer,Player,Radio,TuneIn Teiler:, ]
        A2: Variable Setzen [ Name:%obergrenze Zu:%quellen(#)+1 Recurse Variables:Aus Mathematisch:An Hinzufügen:Aus Max Rounding Digits:3 ]
        A3: Szene testen [ Name:Menü Testen:Status Ergebnis Ablegen In:%szene ]
        A4: If [ %szene !~ visible ]
        A5: Variable Setzen [ Name:%Zähler Zu:0 Recurse Variables:Aus Mathematisch:Aus Hinzufügen:Aus Max Rounding Digits:3 ]
        A6: Szene Anzeigen [ Name:Menü Anzeigen Als:Dialog Horizontale Position:100 Vertikale Position:100 Animation:System Exittaste Anzeigen:An Show Over Keyguard:An sofort mit Task fortfahren:An ]
        A7: Warte [ MS:0 Sekunden:5 Minuten:0 Std.:0 Tage:0 ]
        A8: Szene Zerstören [ Name:Menü ]
        A9: Else
        A10: Variable Addiere [ Name:%Zähler Wert:1 Obergrenze:%obergrenze ]
        A11: Variable Setzen [ Name:%Zähler Zu:1 Recurse Variables:Aus Mathematisch:Aus Hinzufügen:Aus Max Rounding Digits:3 ] If [ %Zähler ~ 0 ]
        A12: AutoInput Action [ Konfiguration:Type: Text
    Value: %quellen(%Zähler)
    Action : Click
    Is Tasker Action: true Timeout (Sekunden):23 ]
        A13: Warte [ MS:0 Sekunden:2 Minuten:0 Std.:0 Tage:0 ]
        A14: Szene Zerstören [ Name:Menü ]
        A15: Lade Applikation [ Package/App Name:Deezer Daten: Von aktuellen Apps ausschließen:Aus Always Start New Copy:Aus ] If [ %quellen(%Zähler) ~ Deezer ]
        A16: Lade Applikation [ Package/App Name:Musicolet Daten: Von aktuellen Apps ausschließen:Aus Always Start New Copy:Aus ] If [ %quellen(%Zähler) ~ Player ]
        A17: Lade Applikation [ Package/App Name:NavRadio+ Daten: Von aktuellen Apps ausschließen:Aus Always Start New Copy:Aus ] If [ %quellen(%Zähler) ~ Radio ]
        A18: Lade Applikation [ Package/App Name:TuneIn Radio Daten: Von aktuellen Apps ausschließen:Aus Always Start New Copy:Aus ] If [ %quellen(%Zähler) ~ TuneIn ]

Hast du zum erkennen der Taste die App Button Mapper mal probiert? Kann dann via Intent als Auslöser in Tasker integriert werden.
 

Anhänge

  • Menü_Quellen.prj.xml
    16,3 KB · Aufrufe: 27
Zuletzt bearbeitet:
  • Danke
Reaktionen: the-unknown
Moin zusammen.

Hatte dieses Thread ganz aus dem Auge verloren🙈
Vielleicht gibt es eine Möglichkeit, ihn mit dem folgenden zusammen zu lagen
Menü erstellen und Auswahl per Knopfdruck treffen

@Mathens
Hast du zum erkennen der Taste die App Button Mapper mal probiert? Kann dann via Intent als Auslöser in Tasker integriert werden.
Das geht nicht, da die Knöpfe am Radio "virtuelle" Knöpfe sind und nicht durch Tasker erkannt werden.
Inzwsichen gibt es aber im Costum Mod die einen Intent, der in Tasker ausgelesen werden kann.

Dein Projekt schaue ich mir ganz in Ruhe mal an. Der Ansatz aus dem anderen Thread sah zwar gut aus, aber auch damit stolpere ich wieder.
 
Macht erstmal den Eindruck der besten Lösung bisher.

Jedoch wird regelmäßig ein Menüpunkt übersprungen und Autoinput schmeißt einen Fehler welcher das genau ist, habe ich noch nicht rausfinden können.
 
Es gibt noch die Möglichkeit ohne Autoinput. Dazu musst du aber in der Szene die einzelnen Menüpunkte selber erstellen und nicht mit dem Menü arbeiten.
 
  • Danke
Reaktionen: the-unknown
Das funktionelle Hauptproblem scheint, soweit ich rausfinden konnte, der folgende Punkt zu sein:

A10: Variable Addiere [ Name:%Zähler Wert:1 Obergrenze:%obergrenze ]

Hier überspringt er ab und zu, sodass es sehr schnell 2x +1 ist, oder direkt +2 ist. Da bin ich nicht sicher.

Habe noch eine Idee, um das Problem zu lösen. Schauen ob es funktioniert.
Es gibt noch die Möglichkeit ohne Autoinput. Dazu musst du aber in der Szene die einzelnen Menüpunkte selber erstellen und nicht mit dem Menü arbeiten.
Hast du einen kleinen Tip für mich?
Dann kann ich mich damit auch noch beschäftigen. Wenn das springen gelöst wird, scheint das (zumindestim Test am Pixel 3) die optimale Lösung zu sein.
 
Beim Problem mit dem Springen kannst du ein Warte von z.B. 300ms vor A10 einfügen. Die Zeit würde ich so klein wie Möglich halten.

Bei der Szene erstellst du für jede Quelle ein eigenes Textfeld und benennst sie z.B. mit Quelle 1, Quelle 2, Quelle 3, usw.
Zum markieren der Auswahl im Task ersetzt du A12 mit folgenden Aufgaben:
Für jedes Textfeld setzt du mit Szene > Objekt Hintergrundfarbe die in der Szene definierte Hintergrundfarbe.
Danach nochmals mit einer anderen Hintergrundfarbe für das ausgewählte Textfeld. Dort musst du dann bei Element wieder mit der Variable %Zähler arbeiten (Quelle %Zähler).
 
  • Danke
Reaktionen: the-unknown
Perfekt

Manchmal hilft es, eine Nacht drüber zu schlafen ;)

Genau das hatte ich gestern schon gemacht, aber irgendwie wollte er nicht. Aktuell läuft es am Pixel 3 mit 50ms

Bei nächster Gelegenheit Mal schauen, was das Radio dazu sagt
 
  • Danke
Reaktionen: Mathens

Ähnliche Themen

witnix
  • witnix
Antworten
13
Aufrufe
720
mbefore305
M
coolzero3389
Antworten
21
Aufrufe
712
Hastenichgesehen
H
addy-b
Antworten
2
Aufrufe
907
addy-b
addy-b
Zurück
Oben Unten