如何检测和管理来电(Android)?

时间:2011-07-07 12:39:57

标签: java android incoming-call

我想创建一个应用程序,可以检测来电并在发出一定数量的哔哔声(响铃)后启动我的自定义活动,我的意思是在发出2或3或5次哔声(响铃)之后触发我的activity。我该怎么做?

由于

2 个答案:

答案 0 :(得分:4)

我认为您无法计算自拨打电话开始以来手机响铃次数。由于用户可以轻松地将铃声更改为非重复曲调(例如,歌曲),因此无法对单个铃声进行明确衡量。

然而,您可以做的是计算自通话到来以来经过的时间。为BroadcastReceiver设置PHONE_STATE(您需要清单中的相应权限才能接收事件)。收到EXTRA_STATE_RINGING附带的PHONE_STATE后,通过AlarmManager设置一个警报,该警报会触发Service,检查EXTRA_STATE_OFFHOOK是否为{{1}}在你等待的时间之后播放了电话。如果没有,那么你可以启动你的电话答录机。

我写了a quick tutorial in my website关于如何接听电话的到来(电话响铃时),接听电话以及电话结束时的信息。

答案 1 :(得分:4)

关于检测来电和拨出电话的文章,以及分步说明: Detecting incoming and outgoing phone calls on Android

当您检测到来电时,您可以启动一个定时器,其间隔等于beepInterval * beepCount。并在此计时器上启动活动。