我的应用程序使用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 – 如何在来电时区分屏幕开/关状态?全部内容,希望文章能够帮你解决android – 如何在来电时区分屏幕开/关状态?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)