Ich arbeite mit einem chinesischen Tablet, das jedes Mal initialisiert werden muss, nachdem es an eine Stromquelle angeschlossen wurde.
Dazu verwende ich Tasker . Das Problem ist: Diese Bedingung führt dazu, dass der Tasker den reboot
Befehl immer wieder ausführt, und es wird zu einem bootloop .
Was soll ich tun, um das Tablet zu initialisieren, wenn eine Stromquelle angeschlossen ist, aber zu vermeiden, dass es in den Bootloop eintritt ?
Bearbeiten: TaskerProfil
<TaskerData sr="" dvi="1" tv="4.6u3">
<Profile sr="prof2" ve="2">
<cdate>1431370575080</cdate>
<edate>1431372456863</edate>
<id>2</id>
<mid0>4</mid0>
<State sr="con0" ve="2">
<code>10</code>
<pin>true</pin>
<Int sr="arg0" val="1"/>
</State>
</Profile>
<Profile sr="prof5" ve="2">
<cdate>1431370730220</cdate>
<edate>1431371684461</edate>
<flags>2</flags>
<id>5</id>
<mid0>6</mid0>
<State sr="con0" ve="2">
<code>10</code>
<Int sr="arg0" val="1"/>
</State>
</Profile>
<Project sr="proj0" ve="2">
<cdate>1431027887676</cdate>
<mdate>1431371133517</mdate>
<name>Base</name>
<pids>2,5</pids>
<tids>4,6,7</tids>
<Img sr="icon" ve="2">
<nme>hl_aaa_ext_home</nme>
</Img>
</Project>
<Task sr="task4">
<cdate>1431370589904</cdate>
<edate>1431372085383</edate>
<id>4</id>
<nme>Task1</nme>
<pri>10</pri>
<Action sr="act0" ve="7">
<code>410</code>
<Str sr="arg0" ve="3">Documents/sdcard.txt</Str>
<Str sr="arg1" ve="3">0</Str>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
</Action>
</Task>
<Task sr="task6">
<cdate>1431370741046</cdate>
<edate>1431372415674</edate>
<id>6</id>
<nme>Task2</nme>
<pri>10</pri>
<Action sr="act0" ve="7">
<code>417</code>
<Str sr="arg0" ve="3">Documents/sdcard.txt</Str>
<Str sr="arg1" ve="3">%True</Str>
</Action>
<Action sr="act1" ve="7">
<code>410</code>
<Str sr="arg0" ve="3">Documents/sdcard.txt</Str>
<Str sr="arg1" ve="3">1</Str>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
<ConditionList sr="if">
<Condition sr="c0" ve="3">
<lhs>%True</lhs>
<op>2</op>
<rhs>0</rhs>
</Condition>
</ConditionList>
</Action>
</Task>
<Task sr="task7">
<cdate>1431371028431</cdate>
<edate>1431372348654</edate>
<id>7</id>
<nme>runshell</nme>
<pri>10</pri>
<Action sr="act0" ve="7">
<code>123</code>
<Str sr="arg0" ve="3">reboot</Str>
<Int sr="arg1" val="0"/>
<Int sr="arg2" val="1"/>
<Str sr="arg3" ve="3"/>
<Str sr="arg4" ve="3"/>
<Str sr="arg5" ve="3"/>
<ConditionList sr="if">
<Condition sr="c0" ve="3">
<lhs>%True</lhs>
<op>2</op>
<rhs>0</rhs>
</Condition>
</ConditionList>
</Action>
</Task>
</TaskerData>
Wenn ich die Frage richtig verstanden habe, möchten Sie das Gerät an eine Stromquelle anschließen, die Tasker dazu veranlasst , das Gerät neu zu starten (zur Initialisierung). Aber wenn das Gerät sich selbst neu startet, stellt Tasker fest, dass die Stromquelle angeschlossen ist, und wiederholt die Aufgabe erneut. Ihr Ziel ist es, Tasker nur einmal neu zu starten, während die Stromquelle angeschlossen bleibt. Wenn die Quelle entfernt und erneut eingefügt werden soll, sollte Tasker den Neustart nur einmal durchführen.
Basierend auf diesem Verständnis schlug ich die folgende Lösung vor:
Die Lösung ist sehr trivial. Ich verwende zwei Profile in Tasker , nämlich:
Diese beiden Profile werden offensichtlich durch Anschließen/Trennen der Stromquelle an das Android-Gerät ausgelöst. Ich verwende hier den Inhalt einer Datei als Bedingung, um die Boot-Schleife einzuschränken.
Hinweis: Für diese Antwort habe ich als Stromquelle nur USB ausgewählt.
Zum Dateiinhalt:
sdcard.txt
. /sdcard
Der Speicherort dieser Datei ist /sdcard/sdcard.txt
.)0
sie hinzu. (Ich habe den 920 Texteditor verwendet ).0
nur zu verwenden. Es wird nur in einer bedingten Anweisung verwendet. Es steht Ihnen frei, eine andere Nummer zu versuchen.In Bezug auf Profile und Aufgaben in der Tasker -App:
+
, indem Sie auf → Status → Leistung → Leistung tippen .+
auf → Datei → Datei schreiben ./sdcard/sdcard.txt
.0
unter Textfeld .+
auf → Datei → Datei lesen .%True
-- Sie können %True
zu einem beliebigen anderen Namen wechseln. Stellen Sie sicher, dass Sie mindestens einen Buchstaben Ihrer Variablen groß schreiben, um sie nicht lokal zu machen. Sehen Sie sich dies an , um mehr zu erfahren.1
unter Textfeld ein .+
das entsprechende If . Fügen Sie %True
bzw. 0
in den Feldern hinzu. So sollte es aussehen %True
~
0
.+
auf → Code → Shell ausführen .reboot
unter Befehl ein . (Mein Gerät ist gerootet, daher habe ich Root-Berechtigungen für diesen Schritt bereitgestellt, um Ärger zu vermeiden.) Als Soft-Reboot-Option können Sie anstelle killall zygote
von reboot
.Wir können loslegen.
Status: Ziel abgeschlossen . Erledigt!
Machado
Feuerlord
Machado
Machado
Feuerlord
Machado
Feuerlord
Machado
Settings
(in der rechten Ecke) ->Data
->Share
. Dann können Sie eine Datei ähnlich der, die ich gerade als Bearbeitung gepostet habe, in einen TextEditor übertragen.Machado
Feuerlord
Machado