应答呼叫时触发音频文件

Cra*_*las 8 audio android phone-call

有没有办法在接听电话时启动音频文件而不是在通话中播放(因此另一方可以听到),但只能在通话扬声器中播放(所以只有我们这边可以听到).

听起来很奇怪,我知道但它是一个更大的应用程序的一部分.

Alb*_*ico 1

首先,您需要设置一个BroadcastReceiver(我们称之为“CallReceiver”),以及了解手机状态的权限(直观上,添加的权限是android.permission.READ_PHONE_STATE)。

像这样注册您的 CallReceiver 操作。

<receiver android:name=".CallReceiver" android:enabled="true">
    <intent-filter>
        <action android:name="android.intent.action.PHONE_STATE"></action>
    </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

在 CallReceiver 处,您可以决定音频播放的操作(传入/传出/电话铃声...),因此只需阅读 EXTRA_STATE 和 getCallState()(查看 TelephonyManager 文档)。

关于音频,您需要使用 AudioManager ,并在播放声音之前设置“通话中”播放模式。

private AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);  
am.setMode(AudioManager.MODE_IN_CALL); 
am.setSpeakerphoneOn(false);
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助!