在Android 12中,AudioManager.setCommunicationDevice方法已被废弃,需要使用新的API替代。可以使用setPreferredCommunicationDevice方法。
示例代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { AudioDeviceInfo deviceInfo = null; // 通过getDevices获取认证设备的信息 AudioDeviceInfo[] devices = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS); for (AudioDeviceInfo dev : devices) { if (dev.getType() == AudioDeviceInfo.TYPE_TELEPHONY) { deviceInfo = dev; break; } } if (deviceInfo != null) { audioManager.setPreferredCommunicationDevice(deviceInfo); } } else { // 在Android 12以下版本中可以使用setMode方法 audioManager.setMode(AudioManager.MODE_IN_CALL); audioManager.setSpeakerphoneOn(false); }