【问题标题】:Why can't we record an incoming call in an android application?为什么我们不能在 Android 应用程序中记录来电?
【发布时间】:2011-04-12 07:07:39
【问题描述】:

有没有办法通过android代码记录来电?

如果不存在这个功能,那么一些第三方应用程序如何记录通话?

【问题讨论】:

    标签: android


    【解决方案1】:

    录制通话的能力取决于硬件或固件。大多数 Android 手机都没有设置音频路径的内部“布线”,以便语音通话音频完全到达应用处理器。

    可让您在市场上录制通话的应用程序:

    仅适用于上述不正确的特定手机(极少数型号)

    或者在他们要求您使用免提电话的情况下使用黑客,并实际从电话麦克风录制通话音频,捕捉电话扬声器发出的内容...

    【讨论】:

      【解决方案2】:

      a) 获取 READ_PHONE_STATE 和 RECORD_AUDIO 权限

      b) 注册电话状态接收器

          <receiver android:name="com.record.app.callrecorderapp.CallStateListener" >
              <intent-filter>
                  <action android:name="android.intent.action.PHONE_STATE" />
              </intent-filter>
          </receiver>
      

      c) 来电时触发录音

      public class CallStateListener extends BroadcastReceiver {                                   
          public void onReceive(Context context, Intent intent) {                                  
              if (TelephonyManager.EXTRA_STATE_RINGING.equals(state)) {                            
                 startRecording();
              }
      
          }
      }
      

      d) 进行实际录制

      void startRecording() {
          recorder = new MediaRecorder();
          recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL); 
          recorder.setOutputFile(filePath);
          recorder.start();
      }
      

      还有更多的簿记,但你会弄明白的。

      应该可以在大约 50% 的设备上使用,包括 Galaxy S4 + S5

      【讨论】:

        猜你喜欢
        • 2021-06-24
        • 1970-01-01
        • 1970-01-01
        • 2022-11-06
        • 1970-01-01
        • 2017-06-17
        • 1970-01-01
        • 1970-01-01
        • 2017-06-05
        相关资源
        最近更新 更多