是否可以编写通过电话振铃调用的应用程序?

问题描述:

我猜测答案是否定的,但为了以防万一,我很好奇,如果有任何方法可以编写一个接收器,当手机开始接收电话时就会启动应用程序。即使像对话活动那样简单,就会显示“您的手机正在响铃”。或者是手机总是要压制任何其他试图运行的应用程序?是否可以编写通过电话振铃调用的应用程序?

您可以注册BroadcastReceiver为 '听' 的......

TelephonyManager.ACTION_PHONE_STATE_CHANGED 

就可以检查EXTRA_STATECALL_STATE_RINGING

但是,我不确定你为什么想'启动应用程序'。你说...

即使像对话活动那样简单,就像“你的手机正在响起”一样。

我的手机已经告诉我,当我的手机响了 - 我得到自定义铃声取决于谁打电话给我,我也看到他们的照片了。我不太确定你想在这里实现什么。

我认为这个问题可能已经在这里问的SO:
Catch a Ring event

首先,我不是一个Android程序员,但我敢肯定,你可以做你的要求。

本质上,Android操作系统正在运行设备并处理来电(智能手机比现在的手机更为计算机)。我假设操作系统中嵌入的是一系列“事件”或“状态更改/标志”,操作系统用来中断其他正在运行的程序,当硬件发现有来电时,将焦点切换到电话应用程序。

我相信可以检测到事件并对事件做出反应,因为手机正在后台运行守护进程,而电话正在发生。我阅读了其他SO贴子链接到的大部分博客条目,看起来像一些中等复杂的东西,但并非不可能。

祝你好运!

+0

我刚才看了一下你在答案中链接到的SO问题的答案中链接的博客条目。撰写博客的人将“BroadcastReceiver”(正确)称为“IntentReceiver”(错误)。不仅如此,博客文章是4年前写的,作者似乎更关心模拟器不断崩溃的事实。不是我见过的优秀编程的最好例子。 – Squonk 2012-04-03 08:03:08

+0

@MisterSquonk感谢您的信息。我更关心原始海报问题,即是否有可能。这似乎是可能的。我从来没有做过任何Android编程,所以我不得不承认你的话。 – hypervisor666 2012-04-03 20:49:12