How can I turn off screen in Android from a Service?
I tried with a wakelock (with permission in manifest) but it doesn't work (screen doesn't turn off).
P.S. I don't want to use a dummy activity which set brightness to 0.
public class Servizio extends Service {
PowerManager.WakeLock wl;
public class LocalBinder extends Binder {
Servizio getService() {
return Servizio.this;
}
}
private final IBinder mBinder = new LocalBinder();
@Override
public IBinder onBind(Intent arg0) {
return mBinder;
}
@Override
public void onCreate() {
super.onCreate();
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
wl.acquire();
wl.release();
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
The device admin APIs (e.g., DevicePolicyManager
) let you do this (e.g., lockNow()
). However, the user has to enable you as a device administrator.