Могу ли я сообщить системе Android, что наушники в данный момент не подключены?

#java #android #kotlin

#java #Android #kotlin

Вопрос:

Я знаю, что это большой риск, но вот так. Мой телефон получил повреждение от воды в порту наушников, поэтому в настоящее время он всегда думает, что подключены несуществующие наушники. Это позволяет мне вести разговоры только через динамик, потому что в противном случае он пытается записать звук с несуществующего микрофона.

Я увидел, что здесь есть действие под названием ACTION_HEADSET_PLUG. Есть ли способ транслировать это действие по всей системе, чтобы «обмануть» Android, заставив его думать, что ничего не подключено, или это то, на что у кого-то просто нет разрешения?

Что-то похожее на это:

 Intent().also { intent ->
            intent.setAction("android.intent.action.HEADSET_PLUG")
            intent.putExtra("state", 0)
            sendBroadcast(intent)
        }
  

Комментарии:

1. любопытный случай…

Ответ №1:

Попробуйте это:

 AudioManager audioManager = AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.isWiredHeadsetOn();
  

Необходимо добавить разрешение

 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
  

Комментарии:

1. К сожалению, isWiredHeadsetOn() — это средство получения, которое фактически ничего не изменяет, как и метод setWiredHeadsetOn()