German zeitgesteuert App starten

awama

Active Member
Licensed User
Longtime User
Kann mir jemand einen Tipp geben wie ich zeitgesteuert eine App starte. Zum Beispiel jede volle Stunde startet die App und gibt einen Ton aus. Aus der App heraus sollen die Startzeiten auch einstellbar sein.

Gruss
Walter
 

corwin42

Expert
Licensed User
Longtime User
Timer sollten in Services nicht benutzt werden.

Man kann seinen Service mit StartServiceAt() zu einer bestimmten Zeit starten. Das funktioniert auch aus dem Service selbst heraus. D.h. in Service_Start einfach wieder StartServiceAt() aufrufen, um den nächsten Ausführungszeitpunkt zu setzen. So kann man sich wiederholende Ereignisse programmieren.
 

awama

Active Member
Licensed User
Longtime User
Ich habe das Problem mittlerweile wie Markus beschrieben hat gelöst. In einem anderen Thread konnte ich gestern ein Beispiel finden.
Nur des Interessens wegen. Gibt es eine Androidfunktion wie den Taskplaner bei Windows?

Jetzt habe ich noch ein anderes Problem. Erel hat mir gepostet dass es nicht möglich sein soll.

Ich möchte dass nachdem die App gestartet ist , die App auch sofort sichbar ist.
Es soll also die Telefonsperre aufgehoben werden sodaß ich nicht erst mit dem Finger über das Display wischen muß. Beim integrierten AlarmApp funktioniert das auch. HAt jemand eine Idee? In Android habe ich keine Einstellung gefunden diese Touchscreen-Sperre abzuschalten. Besten Dank.

Walter.
 

corwin42

Expert
Licensed User
Longtime User
Ich möchte dass nachdem die App gestartet ist , die App auch sofort sichbar ist.
Es soll also die Telefonsperre aufgehoben werden sodaß ich nicht erst mit dem Finger über das Display wischen muß. Beim integrierten AlarmApp funktioniert das auch. HAt jemand eine Idee? In Android habe ich keine Einstellung gefunden diese Touchscreen-Sperre abzuschalten. Besten Dank.

Walter.

Da fallen mir zwei Möglichkeiten ein. Ich weiss aber nicht, ob eine davon in B4A über Reflection.library funktioniert.

Man kann den Lockscreen einmal komplett abschalten:

B4X:
KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE);  
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); 
lock.disableKeyguard();

hinterher Einschalten wieder mit lock.reenableKeyguard();

Das müsste sich alles über ein Reflector Object in B4A aufrufen lassen.

Oder man kann versuchen, seine Activity vor dem Lockscreen darzustellen:

B4X:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);

Also über ein Reflector Object die Activity holen, mit getWindow() das zugehörige Window holen und dann das entsprechende Flag setzen.
Dann sollte die Activity auch vor dem Lockscreen dargestellt werden.

Soweit die Theorie. Obs in der Praxis funktioniert muss man mal ausprobieren.
 

awama

Active Member
Licensed User
Longtime User
Danke Markus für den Versuch, ich kann aber mit JavaCode fast nichts anfangen.

Habe dann bei meiner Suche festgestellt dass mit Phonelibrary nicht nur Telefonieeigenschaften sondern das gesamte Telefon / Gerät mit all seinen Sensoren und Eigenschaften usw gemeint ist.

PhoneWakeState kommt meiner Frage am nächsten

Dim phone2 As PhoneWakeState

So bleibt der Touscreen immer sichtbar und geht nicht in Standby:
Phone2.KeepAlive(False) 'false = ca halbe, true =volle Helligkeit
Phone2.ReleaseKeepAlive 'damit schaltet man die Funktion wieder ab

Phone2.PartialLock 'diese Funktion bleibt bei mir ohne Wirkung
'Phone2.ReleasePartialLock 'schaltet Funktion wieder ab

Kann mir jemand sagen was .PartialLock machen soll. Aus der Docu werde ich nicht schlau. Besten Dank.

Walter
 

corwin42

Expert
Licensed User
Longtime User
Phone2.PartialLock 'diese Funktion bleibt bei mir ohne Wirkung
'Phone2.ReleasePartialLock 'schaltet Funktion wieder ab
Mit PartialLock kann man verhindern, dass das Telefon in den Schlafmodus geht. D.h. es schaltet sich nicht mehr komplett ab. Das Display geht zwar aus, wenn man den Powerbutton drückt, das Telefon bleibt aber "wach".
 
Top