是否可以忽略插入的耳机并仍然使用 phone 扬声器?

Is it possible to ignore plugged in Headset and still use phone speakers?

我想在插入耳机时使用 Phone 扬声器,而不是耳机扬声器。

可以吗?如果是,我该如何实现?
我正在 Java 中为 Android 9.
开发应用程序 检测耳机是否已插入目前有效:

public class HeadsetIntentReceiver extends BroadcastReceiver {
private String TAG = "HeadSet";

public HeadsetIntentReceiver() {
    Log.d(TAG, "Created");
}

@Override
public void onReceive(Context context, Intent intent) {
    if(intent.getAction().equals(Intent.ACTION_HEADSET_PLUG)) {
        int state = intent.getIntExtra("state", -1);
        switch(state) {
            case(0):
                Log.d(TAG, "Headset unplugged");
                break;
            case(1):
                Log.d(TAG, "Headset plugged");
                break;
            default:
                Log.d(TAG, "Error");
        }
    }
}
}

编辑:
我尝试了以下解决方案,但没有任何反应:

  1. How to mute audio in headset but let it play on speaker programmatically?
  2. How to disable the wired headset programmatically in Java

    提前感谢您提供任何有用的建议。


(请不要回答"Unplug the Headset")

我想你在找AudioManager

AUDIO_SERVICE 附加到 AudioManager,将 AudioManager 设置为 MODE_IN_COMMUNICATION,然后打开扬声器 phone。您可以像在 phone.

上一样使用扬声器
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
audioManager.setSpeakerphoneOn(true);

用完记得还原 例如,

protected void onPause() {
    super.onPause();
    audioManager.setMode(AudioManager.MODE_NORMAL);
    audioManager.setSpeakerphoneOn(false);
}