Я хочу реализовать KioskMode
, я нацелен только на Android L
, так как это очень специфичное приложение.Android: Stop Back Button From Exiting LockTask/Kiosk Mode
Я уже прошел процесс установки своего приложения как DeviceAdmin, и DevicePolicyManager.isLockTaskPermitted(this.getPackageName())
уже возвращает true
.
Затем я начинаю LockTask
через startLockTask()
.
Все в порядке, но когда я удерживаю backbutton
, приложение по-прежнему выходит из режима киоска.
Я переопределил onKeyPress
, чтобы показать пользовательский диалог для разблокировки приложения, но это не мешает андроиду автоматически выйти из моей задачи блокировки, если пользователь откидывается назад.
Я действительно не знаю, что делать в данный момент, и был бы благодарен за каждый вход.
я теперь переопределены
@Override
public boolean onKeyDown(int KeyCode, KeyEvent event)
{
if(KeyCode == KeyEvent.KEYCODE_BACK)
{
BackDownButtonPressed = true;
if(VolDownPressed)
showTaskLockDialog();
return true;
}
else if(KeyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
{
VolDownPressed = true;
if(BackDownButtonPressed)
showTaskLockDialog();
return true;
}
return super.onKeyDown(KeyCode, event);
}
@Override
public boolean onKeyUp(int KeyCode, KeyEvent event) {
if(KeyCode == KeyEvent.KEYCODE_BACK)
{
BackDownButtonPressed = false;
return true;
}
else if(KeyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
{
VolDownPressed = false;
return true;
}
return super.onKeyUp(KeyCode, event);
}
@Override
public void onBackPressed()
{
return;
}
@Override
public boolean onNavigateUp() {
return true;
}
@Override
public boolean dispatchKeyEvent (KeyEvent event)
{
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
return true;
}
return true;
}
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//do something or nothing in your case
return true;
}
return super.onKeyLongPress(keyCode, event);
}
Для записи, я использую Samsung SM-T700 Tablet с CyanogenMod CM12.1
У вас есть overriden onBackPressed()? –
Да, я сделал, не меняет проблему печально – timschoen
Вы можете открыть диалог по щелчку мышью? – Radhey