是否可以忽略插入的耳机并仍然使用 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");
}
}
}
}
编辑:
我尝试了以下解决方案,但没有任何反应:
- How to mute audio in headset but let it play on speaker programmatically?
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);
}
我想在插入耳机时使用 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");
}
}
}
}
编辑:
我尝试了以下解决方案,但没有任何反应:
- How to mute audio in headset but let it play on speaker programmatically?
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);
}