Я столкнулся с тем же сценарием в своем текущем проекте, я использовал тот же самый Home Key Locker lib.
Я должен принять ввод в диалоге внутри моей деятельности Kiosk Mode, клавиатура не отображается, поэтому я делаю это:
final Dialog d = new Dialog(this.activity);
d.requestWindowFeature(Window.FEATURE_NO_TITLE);
getHomeKeyLocker().unlock(); // Unlock before showing dialog
d.setContentView(R.layout.dialog);
final EditText edt = (EditText) d.findViewById(R.id.input);
Button btnSubmit = (Button) d.findViewById(R.id.btnOk);
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt.setError(null);
String tempString = edt.getText().toString();
try {
float value = Float.valueOf(tempString);
if (value >= 10 && value <= 400) {
// Correct value entered
getHomeKeyLocker().lock(activity); // Lock again after getting the value
d.dismiss();
} else {
edt.setError("Enter correct value");
}
} catch (NumberFormatException e) {
e.printStackTrace();
edt.setError("Enter correct value");
}
}
});
d.show();
В принципе, я просто разблокировать деятельность перед показом диалога и заблокировать деятельность снова после получения значения.
Физический или виртуальный ключ для дома? –
Физический домашний ключ – user3782779