我已经构建了一个可以监听背景噪音的应用。我发现虽然在听用户时无法拨打电话或使用任何其他记录音频的应用程序。我想知道是否有办法既可以录制音频,也可以在之前通话时明确禁用声音?如何实现这一目标?
答案 0 :(得分:1)
没有
录制音频等内容无法同时使用两个应用(不符合Google Play指南)。这意味着您必须在其他应用程序何时需要MediaRecorder
,或者将电话呼叫意图发送到操作系统时进行侦听,然后将其释放。您也可以只听设备呼叫状态。
您可以使用TelephonyManager收听:
public class PhoneListener extends PhoneStateListener {
private Context context;
public PhoneListener(Context c) {
context = c;
}
public void onCallStateChanged (int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
break;
case TelephonyManager.CALL_STATE_RINGING:
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
break;
}
}
}
您应该查看此内容以获取更多详细信息: https://stackoverflow.com/a/15564021/4167644
答案 1 :(得分:0)
您可以尝试在呼叫时关闭应用程序,或者让按钮激活睡眠一段时间:
睡眠代码片段: public void run(){ 尝试{ 了Thread.sleep(300000); //代码 } catch(例外e){ e.getLocalizedMessage(); } }