У меня уже есть небольшой пример который позволяет закрыть приложение после ввода пароля. При нажатии на кнопку назад, центральную кнопку и квадратик приложение не должно закрываться. При нажатии на кнопку назад мне удалось сделать что бы оно не закрывалось а вот как сделать так что бы приложение не сворачивалось при нажатии на центральную кнопку и на квадратик не знаю.
public class MainActivity extends AppCompatActivity {
private static final String PASSWORD = "1111"; // Замените на ваш пароль
private ImageView power;
public MainActivity() {
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Установка флагов для режима полноэкранного приложения, предотвращения выключения экрана и запрета сворачивания
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
power = findViewById(R.id.power);
power.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showPasswordDialog();
}
});
}
@SuppressLint("MissingSuperCall")
@Override
public void onBackPressed() {
// Запрещаем обработку кнопки "Назад"
// super.onBackPressed(); // Убираем вызов родительского метода
}
private void showPasswordDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Введите пароль");
// Set up the input
final EditText input = new EditText(this);
builder.setView(input);
// Set up the buttons
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String password = input.getText().toString();
if (password.equals(PASSWORD)) {
// Правильный пароль - закрываем приложение
finish();
} else {
Toast.makeText(MainActivity.this, "Неверный пароль", Toast.LENGTH_SHORT).show();
}
}
});
builder.setNegativeButton("Отмена", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();
}
}