2012-03-18 49 views
2

我想建立一个需要记录电话(主要是传出)电话冻结录音电话

我试图向媒体源设置为MediaRecorder.AudioSource.VOICE_CALL,它总是会导致应用程序的时候冻结。

我也尝试将媒体源设置为MediaRecorder.AudioSource.VOICE_DOWNLINK,但只要连接到电话,就会崩溃。

我曾尝试以下权限:

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/> 
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
<uses-permission android:name="android.permission.Permissions.PROCESS_OUTGOING_CALLS"/> 

但没有任何工程。

有关录制电话的任何建议。

此外,我发现一些老职位,说只有一些手机允许录制语音通话。

有什么办法,如果这个程序是这样的一款手机上运行以编程方式检测(如果没有,我可以让他们使用免提电话或东西)

谢谢!

回答

1

为了实现这个目标,你需要所有这些,我相信:

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
<uses-permission android:name="android.permission.RECORD_AUDIO" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="android.permission.CALL_PHONE" /> 

,最有可能

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

当然,你会想,以确保所有适当的警告和最终用户许可协议是到位。

不知道如果你发布什么

<uses-permission android:name="android.permission.Permissions.PROCESS_OUTGOING_CALLS"/>

是一个错字,但它应该是

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/> 

就像你说:old posts谈的是,有些设备不支持通话录音功能。

  • 有什么方法可以测试其他设备,或者要求朋友或一小组测试人员尝试其他设备......问题似乎是entirely device specific

我会建议您尝试上述权限,看是否可以在其他设备上进行测试,以缩小,如果是设备或编程问题,如果它的设备,那么你就可以知道,更好的找到一个可行的解决方法。

+0

我在我的Galaxy SII上试过这些,但它只是崩溃:( – 2012-03-27 01:24:12

+0

什么是logcat输出时,它崩溃? – TryTryAgain 2012-03-27 01:40:37