通过意图开始与扬声器通话
Start call with speaker via intent
我有一项服务可以在发生事情时启动呼叫,效果很好,但我的问题是如何在扬声器打开的情况下启动它?(并在 2 分钟后取下扬声器?)
根据您的所有回答,
此代码应该有效 -
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + num));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_FROM_BACKGROUND);// (i'm starting the call from service..)
startActivity(intent); //the call start here, work perfect
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_IN_CALL);
audioManager.setSpeakerphoneOn(true);
嗯,它不起作用..为什么?
使用 AudioManager to turn on the speakers and a CallStateListener 检查通话是否结束。如果不是,请检查它是否持续两分钟。
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_IN_CALL);
audioManager.setSpeakerphoneOn(true);
接听电话后使用它打开扬声器。
前任
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
注册 PhoneStateListener
以了解接听电话的时间。
当通话状态为 TelephonyManager.CALL_STATE_OFFHOOK
时开启扬声器
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setSpeakerphoneOn(false);
audioManager.setMode(AudioManager.MODE_NORMAL);
我有一项服务可以在发生事情时启动呼叫,效果很好,但我的问题是如何在扬声器打开的情况下启动它?(并在 2 分钟后取下扬声器?)
根据您的所有回答,
此代码应该有效 -
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + num));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_FROM_BACKGROUND);// (i'm starting the call from service..)
startActivity(intent); //the call start here, work perfect
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_IN_CALL);
audioManager.setSpeakerphoneOn(true);
嗯,它不起作用..为什么?
使用 AudioManager to turn on the speakers and a CallStateListener 检查通话是否结束。如果不是,请检查它是否持续两分钟。
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_IN_CALL);
audioManager.setSpeakerphoneOn(true);
接听电话后使用它打开扬声器。
前任
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
注册 PhoneStateListener
以了解接听电话的时间。
当通话状态为 TelephonyManager.CALL_STATE_OFFHOOK
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setSpeakerphoneOn(false);
audioManager.setMode(AudioManager.MODE_NORMAL);