Frage zu Verfügbarkeit von Variablen in Taks und exportierter APP

  • 8 Antworten
  • Letztes Antwortdatum
O

obelix76

Ambitioniertes Mitglied
9
mal eine Frage, ich hab dazu nirgends eine Aussage gefunden. (oder nicht richtig gesucht :))

Ich habe einen Task innerhalb eines Projektes, der auf die Variablen
%CNAME, %CNUM, %CDATE, %CTIME sowie %CONAME, %CONUM, %CODATE, %COTIME, %CODUR zugreift.

Starte ich den Task innerhalb von Tasker, werden - sofern Anrufe reingekommen waren oder getätigt wurden - in den jeweiligen Variablen Werte vorgehalten. Exportiere ich jetzt den Task oder meinethalben auch das gesamte Projekt als App und starte die App auf dem gleichen Mobiltelefon (kein Reset vorher oder so), kommen die Variablen nur mit ihrem Namen als Ergebnis raus (sie sind also leer). Wird jetzt direkt im Anschluß der Task über Tasker noch mal gestartet, sind die Inhalte sehr wohl da...

Mache ich an irgendeiner Stelle einen Denkfehler? Wie komme ich an die Variableninhalte in der exportierten App dran?

Danke für sachdienliche Hinweise ;)
 
Jede von Tasker erzeugte App hat ihre eigenen Variablen. D.h. z.B. %CNAME existiert in der App und "ein zweites" %CNAME existiert in Tasker. Diese beiden sind völlig unabhängig voneinander.

Etwas anschaulicher ist das, wenn man sich eine Benutzervariable %DisplayAnzahlEinschaltungen denkt, die auch in einer App existiert. Solange die App nicht läuft bzw. deaktiviert ist, ändert sich diese App-Variable nicht. Währenddessen könnte aber ein Profil in Tasker noch aktiv sein, dass diese Variable (nur in Tasker) bei jedem Einschalten des Display hochzählt.

=====

Bei meinen exportierten Tasks/Apps hatte ich schon mehrfach dieses Verhalten, dass eine (meiner) Variable(n), keinen Wert hatte sondern mit %XYZ angezeigt wurde. Das war -glaube ich- immer/manchmal nach Update der App und natürlich nach Neuinstallation der App.

Daher habe ich für meine Apps jeweils eine Task (mit Scene), die die benötigten Variablen in definierte Grundzustände setzt UND die erforderlichen Profile auf ENABLED setzt. Das funktioniert gut.

Die Scene nutze ich, um wichtige Variablen oder die aktiven Profile der App anzuzeigen und die Profile ein- bzw. auszuschalten. Aber das Anzeigen kann man auch mit Flash oder Notify erledigen.
 
ok, ich hatte mich im ersten Post vielleicht etwas unklar ausgedrückt... :)

Mir ist schon klar, daß die Variablen-Umgebungen der exportierten App und von Tasker verschiedene sind. Meine Ausführungen oben sollten nur untermalen, daß der Wert "Letzter Anrufer" im System vorhanden ist und sich exportierte App und der zugrunde liegende Task verschieden verhalten.

Mein Problem ist einfach daß ich nicht verstehe, warum der Task in Tasker den Inhalt von - sagen wir der Einfachheit halber mal nur - %CNUM aus dem System abrufen kann kann, wogegen das dem exportierten Task im gleichen System nicht zu gelingen scheint.
Oder anders gesagt: wie muß ichs denn anstellen, daß ich die Inhalte in der exportierten App auch habe dann? Da hab ich einfach noch ein Verständnisproblem...
 
War mir unsicher, ob das mit den Variablen.... daher die zweigeteilte Antwort

Beim ersten Aufruf meiner App(s) gibt es ein ähnliches Problem, beim zweiten Aufruf nicht mehr.

Sicher bin ich mir nicht, glaube aber, dass man die Profile der App IMMER noch aktivieren muss. Daher auch meine Scene(s) mit Ein-/Ausschalter für die Profile. (in Tasker habe ich die Profile vor dem Export immer deaktiviert, weil ja die App arbeiten soll, nicht Tasker).

Wenn die Profile in der App nun eingeschaltet sind, müssen natürlich deren Kontext(e) zumindest einmal zugetroffen haben, damit einige System-Variablen überhaupt gesetzt worden sind. Auch klar, oder?

Vorsorglich werfe ich nach Installation meiner App einen Blick in Eingabehilfen und Gerätemanager, ob da evtl. ein Häckchen gesetzt werden muss. Und einmal hatte ich das Problem, dass der generierten App eine Berechtigung fehlte, die ich nur mit einem "Trick" zufügen konnte. Bei der Suche solcher Probleme hilft Debug Version im App-Export-Dialog und Sichten des Logfile in /sdcard/__dein_app_name__
 
hmm - dank erstmal für deine Ausführungen, aber es bringt mich erstmal nicht wirklich weiter. Ich versuche was hochgradig simples - ein einzelner *Task*, keine Profile, keine Kontexte, nada, soll exportiert werden.
der Task hat was noch simpleres in sich: Ein Popup mit dem anzuzeigenden Inhalt %CNAME - that's it. Ergebnisse sind wie oben: Task aus Tasker gestartet - alles ist gut. Task exportiert und App gestartet - nix is. :(

ich hab aber den Verdacht, daß diese Systemvariablen nur dann aktualisiert werden / Inhalt bekommen, wenn Tasker bzw. die exportierte App gerade laufen wenn im System was passiert. Anscheinend holt sich Tasker die Dinge nicht aktiv aus dem System, sondern bekommt einen Trigger, wenn das System grad selbst eine Aktualisierung reinbekommt. Das muß ich mal weiter untersuchen - oder hat da jemand genaue Kenntnis dazu?
 
Das kannst Du ja ganz einfach ausprobieren: mach vor dem Popup einen Wait-Schritt und ruf während dieser Wartezeit mal dein Handy von einem anderen Telefon an.
 
obelix76 schrieb:
Anscheinend holt sich Tasker die Dinge nicht aktiv aus dem System, sondern bekommt einen Trigger, wenn das System grad selbst eine Aktualisierung reinbekommt. Das muß ich mal weiter untersuchen - oder hat da jemand genaue Kenntnis dazu?
Zu dem Trigger las ich was in einem Tasker-Forum bei Google. Es ist so, dass sich Tasker benachrichtigen lässt. Alles andere würde ja auch den Akku leersaugen.

obelix76 schrieb:
... ich hab aber den Verdacht, daß diese Systemvariablen nur dann aktualisiert werden / Inhalt bekommen, wenn Tasker bzw. die exportierte App gerade laufen wenn im System was passiert.

Dann erklärt sich das wohl: Deine App läuft ggf. nicht mehr, wenn der Anruf eingeht, weil Android sie entfernt hat.

Für einige Variablen wird es funktionieren, wenn das Ereignis (hier der Anruf) während des Wait eintritt, bei anderen evtl. nur wenn ein Profil direkt oder indirekt die Variable verwendet.

Deswegen ein einfaches Profil, dass z.B. bei Anruf %CNAME als Wert einer lokalen Variable setzt. UND dieses dann in deinem Task auf ENABLED setzen. Ab dem Zeitpunkt wird dann dein Task funktionieren. Denn Android erkennt, dass die App aktiv bleiben muss und automatische Taskkiller werden das vllt auch merken
 
  • Danke
Reaktionen: obelix76
d'oh - ja, jetzt hab ichs verstanden... :)
jaja - so is das manchmal, daß sich Brain 1.0 verrennt und dann festfährt *g*
 
:lol: Klarer Punkt für Humor an dich :thumbup:
 

Ähnliche Themen

0
Antworten
4
Aufrufe
271
0karsten
0
O
Antworten
5
Aufrufe
437
rtwl
rtwl
marspoki
Antworten
3
Aufrufe
631
Mathens
Mathens
Zurück
Oben Unten