3

Я разрабатываю приложение, которое в определенные моменты времени должно пробудить устройство и отклонить блокировку клавиатуры, чтобы отобразить некоторую активность, пока пользователь не отклонит ее. Итак,Lollipop keyguard не уволен?

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | 
        WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); 

не работает на Android Lollipop, в то время как он отлично работает на предустановленных версиях Android! Какие-либо предложения?

ответ

0

Это рабочий раствор:

BroadcastReceiver Класс

@Override 
public void onReceive(Context context, Intent intent) { 
    mWakeLock = ((PowerManager) context.getApplicationContext().getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "TAG"); 
    if (!mWakeLock.isHeld()) { 
     mWakeLock.acquire(); 
    } 
    Intent intent = new Intent(context, MainActivity.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(intent); 
    mWakeLock.release(); 
} 

MainActivity Класс

@Override 
public void onCreate(Bundle bundle) { 
    super.onCreate(bundle); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | 
        WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | 
        WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | 
        WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN | 
        WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | 
        WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | 
        WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 
setContentView(R.layout.activity); 
.... 
} 

И теперь он работает даже на Android Lollipop 5.0.1