Что такое андроид api для получения списка подключенных аудиоустройств?
Я использовал приведенный ниже код, чтобы получить подключенные аудиоустройства для устройства Android. Использовал API-метод getDevices()
и получил результат с подключенными устройствами, такими как наушники, динамик, наушники. Но этот getDevices()
доступен только для Android API 23 уровня (Marshmallow).
Но мое приложение должно поддерживать с уровня API 21 (Lollipop). Пожалуйста, кто-нибудь может дать мне знать альтернативный API, чтобы получить доступное аудиоустройство для устройства Android.
Код, используемый с уровнем API 23.
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
AudioDeviceInfo[] adi = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS);
}
Пожалуйста, помогите мне, предоставив способ получить подключенные аудиоустройства для устройств с версией Android OS ниже Marshmallow (уровень API 23).
Ответы
Ответ 1
Кажется, до API уровня 23 такого API не было, но можно использовать логические методы, чтобы проверить, было ли включено какое-либо аудиоустройство:
-
isWiredHeadsetOn()
- добавлено на уровне API 5, устарело на уровне API 14 -
isSpeakerphoneOn()
- добавлено на уровне API 1 -
isBluetoothScoOn()
- добавлено на уровне API 1 -
isBluetoothA2dpOn()
- добавлено на уровне API 3, устарело на уровне API 26
Если вы всегда получаете false, когда добавляете разрешение MODIFY_AUDIO_SETTINGS в AndroidManifest.xml
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
После проверки вы можете установить устройство включения или выключения, передавая true
или false
методы:
-
setWiredHeadsetOn()
- добавлено на уровне API 5, устарело на уровне API 5 -
setSpeakerphoneOn()
- добавлено на уровне API 1 -
setBluetoothScoOn()
- добавлено на уровне API 1 -
setBluetoothA2dpOn()
- добавлено на уровне API 3, устарело на уровне API 5