Intent.ACTION_USER_PRESENT 解锁会 可以广播它,应用层可接收
LockScreenReceiver lockscreenreceiver = null;
void initLockScreenReceiver() {
if (null == lockscreenreceiver) {
lockscreenreceiver = new LockScreenReceiver(this);
//解锁,是否正确
IntentFilter filter = new IntentFilter(Intent.ACTION_USER_PRESENT);
context.registerReceiver(lockscreenreceiver, filter);
//熄屏
filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
context.registerReceiver(lockscreenreceiver, filter);
//亮屏(亮屏不一定解锁)
filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
context.registerReceiver(lockscreenreceiver, filter);
}
}
void UninitLockScreenReceiver()
{
if (null != lockscreenreceiver) {
context.unregisterReceiver(lockscreenreceiver);
lockscreenreceiver = null;
}
}
private class LockScreenReceiver extends BroadcastReceiver {
floatingView pParent = null;
public LockScreenReceiver(floatingView pParent) {
this.pParent = pParent;
}
@Override
public void onReceive(Context context, Intent intent) {
//setCurTime();
String strAction = intent.getAction();
Log.d("LockScreenReceiver", "锁屏熄屏:strAction:" + strAction );
if (0 == strAction.compareTo(Intent.ACTION_SCREEN_OFF)) {
//pParent.Pause();
}
else if (0 == strAction.compareTo(Intent.ACTION_SCREEN_OFF)) {
//pParent.Resum();
}
}
}