14

Is it possible to write an auto answering machine for Android? For example, when an incoming call event occurs, the application plays a voice message.

How can I do this?

4

3 回答 3

7

Android applications do not have access to the in-call audio stream at this time. So, presently, your application is not possible, sorry.

于 2011-01-18T16:10:33.943 回答
6

到2013年底,这仍然是不可能的。还有很多其他的答案(可能我会在完成这个任务后写一个FAQ总结),但很快,

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

目前,一些高通处理器支持这一点。

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

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

  1. 操作系统 -> 芯片组:将麦克风音量设置为 100%,禁用节能,激活 DSP/DAC/ADC 组件。
  2. 语音 -> 麦克风 -> GSM 基带处理器:编码的原始数据
  3. 语音 -> 麦克风 -> 镜像到 Android 的 mediarecorder 音频源:麦克风数据

(有人期望麦克风 -> Android -> 自己的过滤器 -> GSM 路由,哈?)

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

由于未知原因,不同供应商提供了后门;我仍然没有发现 MTK 芯片组,但谷歌搜索 Qualcomm/Android/voice/uplink/alsa/root 似乎是一个好的开始:)

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


PPS答录机是向拨打该特定答录机号码的人播放语音的东西。它不是录音机,与语音邮件不同。我不明白为什么 100% 的答录机问题都是关于录音或自动接听电话的。

于 2013-11-17T01:00:56.187 回答
2

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

有人可以解释为什么这么难吗?

vrecorder应用程序可以录制通话中的音频流,AutoAnswer可以 自动接听来电,无需 root 电话。

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

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

于 2011-03-03T09:01:41.947 回答