如何为Android创建自动回答机

14

是否可以为Android编写自动应答机?例如,当发生来电事件时,该应用程序会播放语音消息。

我该如何实现这个功能?


1
同时,在Android StackExchange上也有关于同一主题的讨论。http://android.stackexchange.com/questions/19191/answering-machine-on-android 可能会引起某些人的兴趣。 - user1197104
3个回答

7

目前,Android应用程序无法访问通话音频流。因此,很抱歉,您的应用程序目前不可行。


6
截至2013年底,还不可能实现。可能会有其他答案(完成此任务后我可能会写一个FAQ总结),但简要来说:
要求手机硬件供应商在调制解调器中实现额外的“输入引脚”,并将其公开到Android音频层(内核-》HAL)中,以接受准备好的音频流(如8khz wav)。
目前,一些高通处理器支持该功能。
为什么要这样做?我的看法是:为了避免非Android用户听到音频处理延迟-》避免来自非Android用户的羞辱。(好吧,安卓就是为延迟而生的)。其他观点包括:隐私原因、手机制造商的意愿(特别是那些出售数千种基于GSM的警报器、传感器等的中国人)、懒惰和节能。
当您在Android上通话时,会发生以下情况:
1.操作系统-》芯片组:将麦克风音量设置为100%,禁用节能,激活DSP / DAC / ADC组件。
2.声音-》麦克风-》GSM基带处理器:编码的原始数据 3.声音-》麦克风-》镜像到Android的mediarecorder音频源:mic data (有人预期麦克风-》Android-》自己的过滤器-》GSM路线,哈?)
这种架构根本没有为从Android向GSM通道发送数据定义公共的位置;从制造商的普通观点来看,这就像是直接访问GSM无线电芯片以使Android变成在900-2400 MHZ范围内工作的软件广播电台..例如一些超验、非法和终端用户不需要的东西。任何在libmedia、MediaSource等中提供的内容都与原始上行链路访问无关。
由于不明原因,来自不同供应商的后门可用;我仍然在MTK芯片组中找不到任何信息,但是对于高通/Android/voice/uplink/alsa/root的搜索似乎是一个好的起点:)
另外,还有一种DTMF信号传递设施,可通过使用稍微不被文档记录的API来使用。
最后,自动答录机是播放声音给打电话给那个答录机号码的人听的设备。它不是录音机,并且不同于语音邮件。我不明白为什么所有关于自动答录机的问题都是关于录音或自动接听电话的。

2

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

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

VRecorder应用程序可以录制通话音频流,而AutoAnswer可以自动接听来电,无需对手机进行root操作。

该解决方案(如果有效)并不可靠,因为手机可能会关机或者信号接收不好。

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


3
对于想要在电话通话上播放声音的人:这里列出的所有软件都是语音记录器,而不是自动接听设备。没有好的例子,只有记录器,更不用说基于重定向/转发的功能了。继续寻找其他解决方案吧。 - kagali-san

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接