Я хочу отобразить действие перед экраном блокировки. Я пробовал использовать этот код в своем методе onCreate:
super.onCreate(savedInstanceState);
Window window = getWindow();
window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
setContentView(R.layout.test);
Это отлично работает для действий, которые отображаются на весь экран, но я хочу создать действие высотой всего 200 пикселей. Я думал, что смогу сопоставить его с этим кодом:
super.onCreate(savedInstanceState);
Window window = getWindow();
LayoutParams layout = new WindowManager.LayoutParams();
layout.copyFrom(window.getAttributes());
layout.height = 200;
window.setAttributes(layout);
window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
setContentView(R.layout.test);
Но тогда Активность не видна перед экраном блокировки. Если я разблокирую телефон, активность отображается напрямую. Любые идеи, почему и как я могу это исправить?
EDIT: я думаю, что это как-то связано с плавающим ФЛАГОМ окна. Если этот флаг установлен (а я думаю, что он будет, когда я изменю размер), активность не отображается на экране блокировки. Но это только предположение. Любые идеи или обходной путь, чтобы исправить это?
Lockscreen
(частично) за активностью? - person Vikram   schedule 14.08.2013KeyguardManager myKeyGuard = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE); myLock = myKeyGuard.newKeyguardLock("tagName"); myLock.disableKeyguard();
- с разрешением в манифестеandroid.permission.DISABLE_KEYGUARD
. Затем в качестве альтернативы попробуйтеWindow window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
. - person g00dy   schedule 15.08.2013