2015-02-16 2 views
0

Я разрабатываю приложение для Android с функцией блокировки экрана, так что, как только моя активность LockScreen запущена, экран блокировки по умолчанию должен быть временно отключен до тех пор, пока не будет существовать активность.Как сделать FLAG_SHOW_WHEN_LOCKED работу вместе с TYPE_KEYGUARD_DIALOG

При поиске я нашел это легко сделать, используя FLAG_SHOW_WHEN_LOCKED. Но когда я добавил TYPE_KEYGUARD_DIALOG, чтобы отключить кнопку HOME, она перестала работать.

Снова поиск Я закончил с раствором использовать код

KeyguardManager.KeyguardLock k1; 
KeyguardManager km = (KeyguardManager)getSystemService(KEYGUARD_SERVICE); 
k1 = km.newKeyguardLock("IN"); 
k1.disableKeyguard(); 

Но тип KeyguardManager.KeyguardLock осуждается.

Есть ли способ сделать эту работу без использования KeyguardLock?

мой код-

public void onAttachedToWindow() { 
    // TODO Auto-generated method stub 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG | WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    getWindow().addFlags(
      WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON 
        | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED 
        | WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    super.onAttachedToWindow(); 
} 

ответ

0

Найдено, что мой вопрос не имеет отношения больше. Невозможно создать блокирующий экран для телефонов Jellybean +. Так что на данный момент эта функция отключена.

Причины,

  1. KeyguardManager.KeyguardLock осуждается.
  2. Использование onAttachedToWindow() приводит к ошибке для Jellybean +.
0

Если вам все еще нужно ответить попробовать FLAG_DISMISS_KEYGUARD это альтернатива для KeyguardLock и если он не будет работать, вы просто должны держать KeyguardLock и добавить @SuppressWarnings("deprecation") перед тем @Override. А также вам не всегда нужно использовать onAttachedToWindow() вы можете использовать this.getWindow().addFlags(WindowManager.LayoutParams.*here flag that you need*), и вам нужно сделать это до setContentView().

Смежные вопросы