【问题标题】:How to detect and manage incoming call (Android)?如何检测和管理来电(Android)?
【发布时间】:2023-03-23 12:51:01
【问题描述】:

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

谢谢

【问题讨论】:

  • 对不起,我不明白你的问题。你能重新措辞或举个例子吗?
  • 好的,伙计,我想讲清楚,我想做一个答录机,我想当有人在 2 或 3 声哔声后拨打我的电话时,我的活动将开始,怎么做?
  • @Pars - 我包含一个非常好的 SO 链接,应该可以帮助您完成这项任务。看看 - stackoverflow.com/questions/6036295/….
  • 您想阻止来电吗?或者只是想在来电到达时启动一个活动/服务?

标签: java android incoming-call


【解决方案1】:

我认为您无法计算自来电开始后电话响铃的次数。由于用户可以轻松地将铃声更改为不重复的曲调,例如歌曲,因此无法对单个铃声进行确定的测量。

但是,您可以做的是计算自呼叫到达以来经过的时间量。为PHONE_STATE 设置BroadcastReceiver(您需要清单中的相应权限才能接收事件)。一旦您收到PHONE_STATE 附带的EXTRA_STATE_RINGING,请通过AlarmManager 设置警报,该警报将触发Service,检查EXTRA_STATE_OFFHOOK(接听电话时广播)是否已在您的等待的时间。如果没有,那么您可以启动答录机。

我已经写了a quick tutorial in my website 来了解如何捕捉电话的到来(电话响铃时)、接听电话的时间以及结束的时间。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 感谢您发布您的答案!请务必仔细阅读FAQ on Self-Promotion。特别要注意的是,如果您的大部分帖子都包含指向您网站的链接,请记住常见问题解答中所说的内容。
    猜你喜欢
    • 2020-10-20
    • 2013-03-11
    • 2014-06-09
    • 2016-03-09
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    相关资源
    最近更新 更多