android 屏幕变暗事件/用户不活动

qyzbxkaa  于 2023-08-01  发布在  Android
关注(0)|答案(2)|浏览(106)

首先,我想告诉大家,我想做的是:我想在我的Android设备上获得iOS的一些行为。当然,这只是一个小细节。
我所说的行为在iOS上是这样的:
1.用户不使用设备
1.过了一小段时间后,设备的屏幕变暗。
1.现在,用户必须点击显示屏上的某个位置以重新激活设备。
1.* 这是我想要的行为 * 如果用户点击屏幕,屏幕将显示
会再次活跃起来水龙头本身不会引起任何其他动作。
在Android上,这几乎是相同的行为。步骤4除外:如果用户点击屏幕以阻止待机,则点击将已经在应用程序或主屏幕中或您所在的任何位置引起操作。
我决定开发一个小型的无障碍服务。当设备处于非活动状态并使其显示器变暗时,此服务将显示覆盖图。点击覆盖图将关闭它。覆盖本身是没有问题的,它已经工作。
我的问题是:我不知道如何找出显示器何时因不活动而变暗。
我的想法是:
1.侦听Intent.ACTION_SCREEN_OFF事件(https://developer.android.com/reference/android/content/Intent)。”它的工作。但为时已晚:-(当事件被触发时,屏幕已经完全关闭。
1.检查设备是否处于非活动/空闲状态。-->是否有可能获得整个设备的状态?我还没找到任何关于这个的东西。
或者有人有完全不同的想法?
谢谢你的帮助。
欢迎光临
帕特里克

egdjgwm8

egdjgwm81#

您可以保持窗口屏幕打开&使用TimerTask,手动调暗窗口的亮度,大约每隔%,比如5秒…
然后,当水龙头上覆盖,增加亮度

dgsult0t

dgsult0t2#

覆盖Activity中的dispatchTouchEvent()方法
你的应用程序中的每一次触摸都会通知你

override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
    ev?.let { event ->
        if (event.action == ACTION_DOWN) {
            //start counting user's inactivity
            //or launch a coroutine with delay before screen dimming
        }
    }
    return super.dispatchTouchEvent(ev)
}

字符串

相关问题