[英]AudioManager is introducing delay in the setMode(MODE_IN_COMMUNICATION)
[英]Bug in the MODE_IN_COMMUNICATION in android audiomanager?
我想,我在MODE_IN_COMMUNICATION
发现了一个奇怪的行为。 我正在 Android 9.0 上测试它:
audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
设置MODE_IN_COMMUNICATION
,我们在应用程序中丢失了铃声。 对于铃声,我使用的是标准方法:
private void warningSound(Context context) {
try {
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Ringtone r = RingtoneManager.getRingtone(context, notification);
r.play();
} catch (Exception e) {
e.printStackTrace();
}
}
您可以尝试设置另一种模式,但在MODE_IN_COMMUNICATION
之后它没有帮助 - 铃声仍然会被禁用。
你有什么解决方法的想法吗? (我应该在耳机和扬声器编程之间切换,因为 3.5 插孔始终连接到设备。)
private void warningSound(Context context) {
try {
AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
int currentMode = audioManager.getMode();
audioManager.setMode(AudioManager.MODE_NORMAL);
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Ringtone r = RingtoneManager.getRingtone(context, notification);
r.play();
new Handler().postDelayed(() -> audioManager.setMode(currentMode), 3000L);
} catch (Exception e) {
e.printStackTrace();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.