【Call】如何实现简单的来电自动接听功能
[DESCRIPTION]
自动接听的功能可以仿照工程模式中AutoAnswer的实现来完成,主要思路就是将是否打开自动接听的标示位存入SharedPreference中,然后来电时根据这个值来决定是否自动接听。
[SOLUTION]
Android 4.4之前版本:
工程模式中AutoAnswer.java界面,当有按下启动自动接听后,就将标示位保存在SharedPreference中,若是有来电,则在InCallScreen启动时,delay一定时间(默认是2s)去接听。相关代码在InCallScreen的mHandler中:
Android 4.4及之后版本:
工程模式中AutoAnswer.java界面,当有按下启动自动接听后,就将标示位保存在SharedPreference中,若是有来电,则在InCallActivity启动时,delay一定时间(默认是3s)去接听。相关代码在callNotifier.java的mHandler中:
Android 5.0及之后版本:
工程模式中AutoAnswer.java界面,当有按下启动自动接听后,就将标示位保存在SharedPreference中,若是有来电,则在InCallActivity启动时,delay一定时间(默认是3s)去接听。相关代码在CallsManager.java的mAutoAnswerHandler中:
Android 6.0及之后版本:
工程模式中AutoAnswer.java界面,当有按下启动自动接听后,就将标示位保存在SystemProperties中,若是有来电,则在InCallActivity启动时,delay一定时间(默认是5s)去接听。相关代码在AutoAnswerHelper.java的onIncomingCall()中: