Activity öffnen wenn Bildschirm eingschaltet wird

  • 2 Antworten
  • Letztes Antwortdatum
M

maX!mum

Neues Mitglied
0
Hallo Leute,

ich versuche eine Lock Screen App zu machen und bin auf ein Problem gestoßen. Ich möchte, dass die App startet sobald der Bildschirm des Android-Geräts eingeschaltet wird. Ich habe bis jetzt einen Service, einen Receiver und die MainActivity erstellt. Die App läuft ohne Probleme jedoch startet sie eben nicht wenn der Bildschirm angeschaltet wird.

Hier ist mein Service:

Code:
package com.example.screenlocker;

import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.IBinder;

public class LockService extends Service {
	
	public void onCreate(){
		IntentFilter filter=new IntentFilter(Intent.ACTION_SCREEN_ON);
		filter.addAction(Intent.ACTION_SCREEN_OFF);
		BroadcastReceiver locker=new StartMyServiceAtBootReceiver();
		registerReceiver(locker, filter);
	}

	  @Override
      public void onStart(Intent intent, int startId) {
		  boolean screenOn = intent.getBooleanExtra("screen_state", false);        
		  if(screenOn){
		            startActivity(new Intent(this, MainActivity.class));  
		           
		           }
		  
	  }
	
	@Override
	public IBinder onBind(Intent arg0) {
		// TODO Auto-generated method stub
		return null;
	}

}

und hier mein Receiver:

Code:
package com.example.screenlocker;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class StartMyServiceAtBootReceiver extends BroadcastReceiver {

	   // THANKS JASON
    public static boolean screenOff = true;
 
    @Override
    public void onReceive(Context context, Intent intent) {
    	if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
            screenOff = true;
            Intent i = new Intent(context,LockService.class);
            i.putExtra("screen_state", screenOff);
            context.startService(i);
            


        } else if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
            screenOff = false;
        }
    }
}

Könnt ihr mir weiterhelfen?

Gruß maX!mum
 
Ich habe es wie in der Lösung beschrieben umgesetzt. Das Einzige was ich nicht hinbekomme ist das Starten des Services im Vordergrund. Finde nur etwas in Verbindung mit Notifications. Diese benutze ich aber nicht.
 

Ähnliche Themen

AnnaBauer21
Antworten
0
Aufrufe
487
AnnaBauer21
AnnaBauer21
AnnaBauer21
Antworten
6
Aufrufe
987
AnnaBauer21
AnnaBauer21
Zurück
Oben Unten