gpt4 book ai didi

android - 来电时如何区分屏幕亮灭状态?

转载 作者:太空宇宙 更新时间:2023-11-03 10:54:58 25 4
gpt4 key购买 nike

我的应用使用 TelephonyManager.ACTION_PHONE_STATE_CHANGED 执行某些操作。但是我想要在用户在场(屏幕打开)时电话响起时采取不同的操作,而在用户不在场(屏幕关闭)时采取不同的操作。我在 onReceive 的开头尝试了 isScreenOn() 方法(因为当屏幕关闭并且有来电时,屏幕会停留一小会儿)。然而,运气不佳 - 有时有效,有时无效。广播与屏幕状态异步...

public void onReceive(Context context, Intent intent) {
pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
Boolean screenOn = pm.isScreenOn();
Log.w(TAG, "Screen on is " + screenOn.toString());

我如何更改我的代码才能真正确定来电时手机是否处于休眠状态?

最佳答案

好的,我得到了令我满意的答案:

public void onReceive(Context context, Intent intent) {
KeyguardManager kg = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
Boolean screenBlocked = !kg.inKeyguardRestrictedInputMode();
Log.w(TAG, "Screen lock is " + screenBlocked.toString());

如果屏幕被锁定,此类解决方案会提供信息。而且,就我而言,这就足够了 - 当屏幕在来电期间被锁定时 - 这意味着没有用户。

关于android - 来电时如何区分屏幕亮灭状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6837916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com