Как проверить, подключены ли наушники Bluetooth, прежде чем спрашивать разрешениеAndroid

Форум для тех, кто программирует под Android
Anonymous
Как проверить, подключены ли наушники Bluetooth, прежде чем спрашивать разрешение

Сообщение Anonymous »

Теперь необходимо проверять разрешение BLUETOOTH_CONNECT во время выполнения при использовании Android 12 или более поздней версии (см. здесь).
Мое приложение использует Bluetooth только для подключения к подключенным в данный момент наушникам ( для перенаправления звука на наушники Bluetooth во время конференц-связи WebRTC). Поэтому мне не нужно запрашивать разрешение, если пользователь не использует наушники Bluetooth.
Я знаю, как запросить разрешение, но проблема в следующем. что чтобы проверить, подключены ли наушники, мне сначала нужно запросить разрешение.
Но я не хочу запрашивать разрешение, если наушники не подключены.
Насколько я понимаю, если Я запрашиваю разрешение, как рекомендовано, тогда всем пользователям будет предложено предоставить разрешение, даже если они не используют наушники Bluetooth в моей игре. Это ненужное разрешение, которое нужно запрашивать у пользователя, и он не поблагодарит нас за это.
Но без предварительной проверки разрешения проверка состояния наушников (подключены или нет) становится невозможной. Как устранить ошибку 22?
Это мой код, чтобы проверить, подключены ли наушники Bluetooth:

Код: Выделить всё

private static boolean isBluetoothHeadsetConnected() {
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
return mBluetoothAdapter != null && mBluetoothAdapter.isEnabled()
&& mBluetoothAdapter.getProfileConnectionState(BluetoothHeadset.HEADSET) == BluetoothHeadset.STATE_CONNECTED;
}
Изображение


Подробнее здесь: https://stackoverflow.com/questions/731 ... permission

Вернуться в «Android»