如何为Android创建自动应答机

时间:2011-01-18 16:08:21

标签: android phone-call

是否可以为Android编写自动应答机?例如,当传入呼叫事件发生时,此应用程序开始播放语音。

我该怎么做?

3 个答案:

答案 0 :(得分:7)

Android应用程序此时无权访问通话中的音频流。所以,目前,你的申请是不可能的,抱歉。

答案 1 :(得分:6)

2013年底,仍然无法实现。 还有很多其他答案(可能我会在完成这项任务后写一篇常见问题解答总结),但不久,

  • 手机硬件供应商需要在调制解调器中实现额外的“输入引脚”并将其暴露给Android音频层(内核 - > HAL)以接受准备好的音频流(如8khz wav)。

目前,一些高通公司支持这一点。

为什么这样做?我的观点是:避免非Android用户听到音频处理延迟 - >避免非Android用户的羞辱。 (好吧,android是为了延迟而创建的)。其他意见包括:隐私原因,电话制造商的意愿(特别是这些中国人,销售1000种基于GSM的警报,传感器等),懒惰和节能。

当您在Android上进行通话时,会发生以下情况:

  1. OS - >芯片组:将麦克风音量设置为100%,禁用节能,激活DSP / DAC / ADC组件。
  2. 语音 - >麦克风 - > GSM基带处理器:编码的原始数据
  3. 语音 - >麦克风 - >镜像到Android的mediarecorder音频源: mic数据
  4. (有人期待麦克风 - > Android - >自带过滤器 - > GSM路线,哈?)

    这种架构没有共同的定义位置,可以将数据从Android发送到GSM频道;从普通制造商的角度来看,这就像直接访问GSM无线电芯片一样,可以将Android转变为在900-2400 MHZ范围内工作的软无线电。对最终用户来说,这是一种无聊,非法和不必要的东西。 libmedia,MediaSource等中的任何可用内容与原始上行链路访问没有任何共同之处。

    由于未知原因,不同供应商提供后门;我仍然没有发现MTK芯片组,但谷歌搜索高通/ Android /语音/上行链路/ alsa / root似乎是一个良好的开端:)

    P.S。还有一个DTMF​​信令工具,可以使用一些未记录的API。


    P上。附: 应答机可以通过呼叫特定应答机号码的人来播放语音。它不是录音机,与语音邮件不同。我不明白为什么100%的答录机问题都是关于录音或自动接听电话。

答案 2 :(得分:1)

AirVoice可以做到这一点。需要root访问权限,仅适用于某些手机。

有人能解释为什么这么难吗?

vrecorder应用可以记录通话中的音频流,而AutoAnswer 可以自动应答来电,而无需为手机生根。

解决方案(如果可行)不可靠,因为手机可能已关机或信号接收不良或无信号接收。

严肃的用户最好使用专用的VoiceMail(VM)提供商,例如http://freephoneline.cahttp://www.youmail.com。要使用这些服务,您可以从他们那里购买虚拟电话号码(带有订阅计划),并将您的运营商配置为将未接听的来电转接到虚拟电话号码。然后,他们将接听电话,播放您选择的问候语,进行语音转文本转换(如果有)并将消息发送到手机上的专用应用程序。