App nach boot starten (soll Lockscreen ersetzen)

  • 10 Antworten
  • Letztes Antwortdatum
K

kadddah

Neues Mitglied
0
Hallo liebe Community,

im Rahmen meiner Bachelorarbeit versuche ich eine App zu gestalten, die nach dem Hochfahren des Gerätes automatisch startet und auch am besten den Lockscreen ersetzt (es soll später eine Art Mehrbenutzerverwaltung sein).

Da ich neu in der Appentwicklung bin, ist das wohl schwieriger als gedacht.

Hier meine ersten Versuche, die App wenigstens nach dem Booten automatisch zu starten. Leider stürzt es immer ab.

manifest.xml:
Code:
  <!-- get permission to start on startup -->
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
.
.
.
 <!-- start on startup start -->
        <receiver
            android:name=".BootUpReceiver"
            android:enabled="true"
            android:permission="android.permission.RECEIVE_BOOT_COMPLETED" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />

                <category android:name="android.intent.category.DEFAULT" />

                <!-- for HTC -->
                <action android:name="android.intent.action.QUICKBOOT_POWERON" />
            </intent-filter>
        </receiver>
        <!-- start on startup end -->


Receiver:
Code:
public class BootUpReceiver extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
		// TODO Auto-generated method stub
		
		Intent i = new Intent(context, MainActivity.class);  
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);  
	}
}

ich hoffe, ihr könnt mir weiterhelfen, dass die App sozusagen den Anmeldescreen/Lockscreen auch schon nach dem Booten ersetzt.

lg :)
 
Bekommst du im logcat eine Meldung?

Gesendet von meinem LG-P880 mit der Android-Hilfe.de App
 
das erscheint im LogCat in eclipse:
Code:
10-27 12:40:05.742: I/ActivityManager(339): Start proc com.example.bach for broadcast com.example.bach/.BootUpReceiver: pid=1207 uid=10141 gids={1028}
10-27 12:40:06.109: W/ActivityThread(1207): Application com.example.bach can be debugged on port 8100...
10-27 12:40:06.160: E/AndroidRuntime(1207): java.lang.RuntimeException: Unable to instantiate receiver com.example.bach.BootUpReceiver: java.lang.ClassNotFoundException: com.example.bach.BootUpReceiver
10-27 12:40:06.160: E/AndroidRuntime(1207): Caused by: java.lang.ClassNotFoundException: com.example.bach.BootUpReceiver
10-27 12:40:20.613: I/ActivityManager(339): No longer want com.example.bach (pid 1207): hidden #16

hmmm eigtl hab ich die Klasse BootUpReceiver...


*Nachtrag: BootUpReceiver wird nun gefunden (hatte das package nicht ausgewählt :/ )
jedoch zeigt es nun gar keine Fehler mehr an und der Log sieht nun so aus:

Code:
10-27 14:10:23.078: I/ActivityManager(342): Start proc com.example.bach for broadcast com.example.bach/com.boot.BootUpReceiver: pid=856 uid=10141 gids={1028}
10-27 14:10:23.187: W/ActivityThread(856): Application com.example.bach can be debugged on port 8100...
10-27 14:10:34.529: I/ActivityManager(342): Process com.example.bach (pid 856) has died.
 
Zuletzt bearbeitet:
Was passierte zwischen
10-27 14:10:23.187

und

10-27 14:10:34.529
??
 
hmmm hab gar nicht auf die Uhrzeit geschaut. Habe eigtl nur das Tablet neu gestartet und nach der App gefiltert.

Denke, die Uhrzeit spielt weniger eine Rolle oder? :)

Zur Sicherheit noch einmal den neuesten Log:

Code:
10-27 22:27:59.000: I/ActivityManager(339): Start proc com.example.bach for broadcast com.example.bach/com.boot.BootUpReceiver: pid=854 uid=10141 gids={1028}
10-27 22:27:59.167: W/ActivityThread(854): Application com.example.bach can be debugged on port 8100...
10-27 22:28:16.536: I/ActivityManager(339): No longer want com.example.bach (pid 854): hidden #16
 
Zuletzt bearbeitet:
Ja um die Uhrzeit geht es ja nicht, habe eigentlich den zeitlichen abstand zwischen den beiden log Einträgen gemeint. Denn vor dem Absturz (process has died).sind ja schon noch 10sec.


Btw: welche log app verwendest du?
Sent from my GT-I9100 using Android-Hilfe.de App
 
das logCat im eclipse verwende ich.

Ist irgendetwas in meinem Code falsch?
Hab das eigtl mit diversen Forumseinträgen abgeglichen... :/

Der Abstand kommt dadurch zustande, da das Fenster (Meldung: App konnte nicht gestartet werden "OK") einige Sekunden aufpoppt und dann erst nach dem Abwarten oder dem "ok"-Drücken der Log geschrieben wird.
 
Mit dem code scheint alles in ordnung zu sein, mich wunderts nur das du keinen Stacktrace in der Logcat hast

Sent from my GT-I9100 using Android-Hilfe.de App
 
so, nocheinmal gemacht, das kommt raus:

Code:
10-28 19:09:37.437: E/Trace(811): error opening trace file: No such file or directory (2)
10-28 19:09:37.472: W/ActivityThread(811): Application com.example.bach can be debugged on port 8100...
10-28 19:09:37.500: D/AndroidRuntime(811): Shutting down VM
10-28 19:09:37.500: W/dalvikvm(811): threadid=1: thread exiting with uncaught exception (group=0x40a9a300)
10-28 19:09:37.503: E/AndroidRuntime(811): FATAL EXCEPTION: main
10-28 19:09:37.503: E/AndroidRuntime(811): java.lang.RuntimeException: Unable to instantiate receiver com.boot.BootUpReceiver: java.lang.ClassNotFoundException: com.boot.BootUpReceiver
10-28 19:09:37.503: E/AndroidRuntime(811): 	at android.app.ActivityThread.handleReceiver(ActivityThread.java:2336)
10-28 19:09:37.503: E/AndroidRuntime(811): 	at android.app.ActivityThread.access$1500(ActivityThread.java:142)
10-28 19:09:37.503: E/AndroidRuntime(811): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284)
10-28 19:09:37.503: E/AndroidRuntime(811): 	at android.os.Handler.dispatchMessage(Handler.java:99)
10-28 19:09:37.503: E/AndroidRuntime(811): 	at android.os.Looper.loop(Looper.java:137)
10-28 19:09:37.503: E/AndroidRuntime(811): 	at android.app.ActivityThread.main(ActivityThread.java:4931)
10-28 19:09:37.503: E/AndroidRuntime(811): 	at java.lang.reflect.Method.invokeNative(Native Method)
10-28 19:09:37.503: E/AndroidRuntime(811): 	at java.lang.reflect.Method.invoke(Method.java:511)
10-28 19:09:37.503: E/AndroidRuntime(811): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
10-28 19:09:37.503: E/AndroidRuntime(811): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
10-28 19:09:37.503: E/AndroidRuntime(811): 	at dalvik.system.NativeStart.main(Native Method)
10-28 19:09:37.503: E/AndroidRuntime(811): Caused by: java.lang.ClassNotFoundException: com.boot.BootUpReceiver
10-28 19:09:37.503: E/AndroidRuntime(811): 	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
10-28 19:09:37.503: E/AndroidRuntime(811): 	at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
10-28 19:09:37.503: E/AndroidRuntime(811): 	at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
10-28 19:09:37.503: E/AndroidRuntime(811): 	at android.app.ActivityThread.handleReceiver(ActivityThread.java:2331)
10-28 19:09:37.503: E/AndroidRuntime(811): 	... 10 more



Nachtrag: Ich bin eine Nuss -.-
Es war immer noch das Package...

die App startet nun nach dem Boot.


Nun das nächste Problem, wie kann ich den Lockscreen ersetzen oder überschreiben?
 
Zuletzt bearbeitet:
Android unterstützt nicht OFFIZIELL (per API) das ersetzen des lockscreens, ist aber per workarounds möglich

Sollen wir dir den ganzen code für deine bachelor arbeit vlt schicken? ;)



Sent from my GT-I9100 using Android-Hilfe.de App
 
neeee, so ist das ja nicht gemeint (aber wenn du so nett fragst...) ;)

aber ein tipp, wo ich anfangen könnte...

Ich hab halt nicht einmal einen Anhaltspunkt.
 

Ähnliche Themen

G
Antworten
0
Aufrufe
132
Gerdchen07
G
G
Antworten
1
Aufrufe
384
Gerdchen07
G
G
Antworten
13
Aufrufe
599
Gerdchen07
G
L
Antworten
2
Aufrufe
555
Lexub
L
migi01
Antworten
26
Aufrufe
1.991
migi01
migi01
Zurück
Oben Unten