Чтобы предотвратить нежелательные действия на дисплее покупателя, вы можете скрыть с него элементы управления и навигации. Тогда клиенты не смогут, например, закрыть приложение отображаемое на дисплее покупателя.
В дополнение к встроенным возможностям Android, мы создали несколько собственых флагов.
В функции для блокирования экрана объявите следующие константы:
private const val SYSTEM_UI_FLAG_IMMERSIVE_HIDDEN = 64 — блокирует возможность открыть панели навигации и статуса в режиме immersive;private const val STATUS_BAR_DISABLE_HOME = 0x00200000 — отключает кнопку Домой;private const val STATUS_BAR_DISABLE_RECENT = 0x01000000 — отключает вызов меню недавних приложений;private const val STATUS_BAR_DISABLE_NOTIFICATION_ALERTS = 0x00040000 — отключает отображение уведомлений;private const val STATUS_BAR_DISABLE_CLOCK = 0x00800000 — отключает отображение часов.private fun enableLock() {
  activity?.window?.decorView?.systemUiVisibility = (
    View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
      or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
      or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
      or View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
      or View.SYSTEM_UI_FLAG_IMMERSIVE
      or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
      or SYSTEM_UI_FLAG_IMMERSIVE_HIDDEN
      or STATUS_BAR_DISABLE_HOME
      or STATUS_BAR_DISABLE_RECENT
      or STATUS_BAR_DISABLE_NOTIFICATION_ALERTS
      or STATUS_BAR_DISABLE_CLOCK
    )
  activity?.startLockTask()
}
private fun disableLock() {
  activity?.window?.decorView?.systemUiVisibility = 0
  activity?.stopLockTask()
}
<?xml version="1.0" encoding="utf-8"?>
  <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/background">
    <View
      android:id="@+id/invisible_button"
      android:layout_width="100dp"
      android:layout_height="150dp"
      app:layout_constraintEnd_toEndOf="parent"
      app:layout_constraintTop_toTopOf="parent" />
    // код экрана
  </androidx.constraintlayout.widget.ConstraintLayout>
abstract class MultipleOnClickListener(private val clickTimes: Int) : View.OnClickListener {
  private var lastTimeClicked: Long = 0
  private var clickCount = 0
  override fun onClick(v: View?) {
    onSingleClick()
    if (System.currentTimeMillis() > lastTimeClicked + CLICK_DELAY) {
      clickCount = 0
    }
    lastTimeClicked = System.currentTimeMillis()
    clickCount++
    if (clickCount == clickTimes) {
      onMultipleClick()
      clickCount = 0
    }
  }
  open fun onSingleClick() {}
  abstract fun onMultipleClick()
  companion object {
    private const val CLICK_DELAY = 500L
  }
}
view.findViewById<View>(R.id.invisible_button)
  .setOnClickListener(object : MultipleOnClickListener(clickTimes = 7) {
    override fun onMultipleClick() {
      disableLock()
      onBackPressed()
    }
  })
В параметре clickTimes укажите сколько нажатий нужно для активации обработчика. Тут действует строгое правило для всех приложений: для снятия блокировки экрана нужно сделать 7 нажатий в правом верхнем углу экрана.