Makro Aktivierung wiederholt sich trotz einmaligem Trigger

  • 23 Antworten
  • Letztes Antwortdatum
Ne, habe das Original umgeschrieben. Mehr als die Schleifen zu Pistolen umzuschreiben war ja nicht nötig. Das dreifache triggern ist eigentlich unmöglich und lässt sich in diesem Fall bestimmt nicht verhindern.

Hatte das gleiche Phänomen sogar nachdem die erste Aktion nach dem triggern das ausschalten bzw. deaktivieren des Makros über ein anderes Makro war.
 
So... Es ist wieder passiert.

Im Protokoll sieht man, dass die Variable sofort auf "falsch" gestellt wird.
Trotzdem startet das Makro drei Mal zugleich bis zum ersten Timer und dann folgen alle Aktionen dreifach, bis das Makro durch ist

Glaube das ist ein Bluetooth Problem und dazu gibt's einfach keine Lösung.

Falls sich hier nochmal jemand mit einem Ansatz findet, wäre ich um jeden Tipp dankbar.
 

Anhänge

  • Screenshot_20230226-103342.png
    Screenshot_20230226-103342.png
    1,5 MB · Aufrufe: 53
Zuletzt bearbeitet:
hi,

ich habe diesen Thread bei der Suche nach was ganz anderem zufällig entdeckt. Sehr interessant! Habe allerdings irgendwann den Überblick verloren, was Du wo irgendwie schon alles probiert has, und was nicht ...

Ich würde das Thema grundsätzlich anders anpacken, denn die Versuche, das Android Verhalten, seiner Trigger, Zustände etc. mit Timern und Variablen in den Griff zu bekommen kann vielleicht funktionieren. Mit dem nächsten Android Update ändert sich dort, wenn Du Pech hast etwas am Verhalten und dann fängst Du wieder von vorne an ...

Du möchtest (wenn ich das richtig verstanden habe) dass in Folge einer Zustandsänderung (z.B. Bluetooth) eine Aktion genau ein Mal ausgeführtl wird. Also sowas wie:
Code:
   If ZustandsÄnderung(BlueTooth)

    Then MeineAktion()
Findet die ZustandsÄnderung(BlueTooth) später noch einmal statt, dann soll MeineAktion() nicht erneut stattfinden.

Mein Vorschlag:

Speichere MeineAktion() als AktionsBlock und lasse MeineAktion() selbst feststellen bzw. entscheiden, ob es ausgeführt wird, indem Du Dir eine bool'sche globale Variable, z.B.
Code:
   MeineAktionActivated=FALSE
setzt. Zu Beginn von MeineAktion() prüfst Du diese Variable und setzt sie ggf. innerhalb des Aktionsblocks. Also ungefähr so:
Code:
   if MeineAktionActivated=FALSE

    Set MeineActionActivated=TRUE

    ..Tu was auch immer diese Aktion tun soll..

   end_if
Jetzt kann MeineAktion() aufgerufen werden, so oft Du (also Android) es will. Sie wird nur genau einmal ausgeführt und dann nie wieder. So lange, bis Du irgendwann, irgendwo die globale Variable MeineAktionActivated=FALSE zurück setzt. Das solltest Du nach Verlassen des Autos oder abhängig von irgendeinem anderen Trigger nicht vergessen. Sonst funktioniert das ganze wirklich nur genau ein Mal ....

Ich hoffe, das hilft irgendwie weiter :)

vG
 
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von: jandroid - Grund: Code Zeilen bearbeitet. Gruß jandroid
  • Danke
Reaktionen: xTimbox
Danke für den Hinweis!
Ich habe tatsächlich schon zwei Variablen gespeichert, die "Makro laufend" und "Verbindung prüfen" heißen.
Sind diese beiden Variablen aktiv, kann das Makro nicht starten.

Mit Aktionsblöcken habe ich mich noch nicht beschäftigt. Wird Zeit, denn ich habe das Gerät gewechselt.

Bin von Pixel 7 pro auf galaxy S24U umgestiegen und war nie zufriedener.
Das Pixel ist so fehlerbehaftet, dass ich es zur Garantie Reparatur eingeschickt habe, nur wegen etlicher Software Probleme.
Selbst manuelles flashen einer alten Software hat nicht geholfen.

Naja, jetzt da das galaxy eine interne Routinen Steuerung, ähnlich wie Macrodroid hat (nur eher auf Bauklötzchen Niveau), kann ich mich von 20 Makros verabschieden und habe auch keine Verbindungsprobleme mehr in jeglicher Weise.

Jetzt muss ich neue Ideen für Makros finden, weil ich eigentlich fast rundum glücklich bin.
Nie wieder Pixel.
Kanns nicht oft genug betonen 😅
 
  • Danke
Reaktionen: AndroidUser42

Ähnliche Themen

M
Antworten
8
Aufrufe
416
stru65
S
W
Antworten
1
Aufrufe
906
clth
C
Stef91
Antworten
6
Aufrufe
2.333
Stef91
Stef91
Zurück
Oben Unten