Android锁定屏幕:允许用户无需PIN即可接听电话

时间:2015-06-26 18:30:20

标签: android locking lockscreen incoming-call

我正在使用自定义PIN构建自定义Android锁定屏幕。我想允许用户无需输入PIN码就可以接听来电,而且不会损害手机的安全性。

Next Lock Screen和GoLocker都有此功能。

两个不好的选择: (1)强制用户输入PIN或(2)在用户接到电话时完全解锁手机

有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

只需使用广播接收器收听TelephonyManager州,然后决定做什么。注册接收器:

<intent-filter>
    <action android:name="android.intent.action.PHONE_STATE"/>
</intent-filter>

......每当onReceive开始检查是否......

intent.getStringExtra(TelephonyManager.EXTRA_STATE) == TelephonyManager.EXTRA_STATE_RINGING

这意味着你正在接听电话,所以你可以隐藏你的“锁定屏幕”,但这将是一个主要的安全漏洞 - 谁拥有该人的号码和SIM卡解锁手机(例如,只是偷了它的人碰巧知道你的号码......)只会通过伪造电话来终止你的“自定义PIN码”功能。

如果你想直接通过你的应用来接听电话,那么你就会遇到非常不同但问题更多的问题 - Android不允许非特权应用(非root用户)接听电话,我所知道的所有方法都是反射类型的黑客,“蓝牙耳机按下”仿真类型,或者不再工作的shell程序调用类型......没有什么可以跨设备一致工作,你有混合和匹配,一些设备将需要条件,因为尝试其中一个可能会崩溃特定的ROM。这就是为什么市场上不再存在许多真正的“呼叫屏幕”应用程序,只是在呼叫之前触发系统呼叫屏幕的拨号器,或者在接收呼叫时叠加在系统屏幕顶部(这几乎就是我做的事情)在这个答案的开头描述)。