Я пытаюсь разработать свое собственное приложение «Всегда на дисплее» для устройств с AMOLED-экраном, чтобы показывать уведомления и, возможно, часы.
Мне удалось запустить свою полноэкранную активность, когда экранвыключен (с приемником), но затем я хотел бы использовать сканер отпечатков пальцев, чтобы прекратить мою деятельность (как это делает нативный AOD).
Вместо этого происходит то, что наложение пальца на сканер ничего не делает,Мне нужно нажать на экран, чтобы отобразить панель навигации, нажать «назад», чтобы перейти на собственный экран блокировки, а затем использовать сканер отпечатков пальцев для разблокировки.
Вот как я в настоящее время управляю этим (FullscreenActivity.kt):
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_fullscreen)
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
mVisible = true
// Set up the user interaction to manually show or hide the system UI.
fullscreen_content.setOnClickListener { toggle() }
}
override fun onPostCreate(savedInstanceState: Bundle?) {
super.onPostCreate(savedInstanceState)
Log.log(loggertag, "postcreate")
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
this.setTurnScreenOn(true)
this.setShowWhenLocked(true)
val keyguardManager = getSystemService(Context.KEYGUARD_SERVICE) as? KeyguardManager?
Log.log(loggertag, "device locked: " + keyguardManager?.isDeviceLocked.toString())
keyguardManager?.requestDismissKeyguard(this, null)
}
// Trigger the initial hide() shortly after the activity has been
// created, to briefly hint to the user that UI controls
// are available.
delayedHide(100)
}
В настоящее время я нацеливаюсь только на 9,0 пирога.