Moved: this guide now lives at https://github.com/jooray/android-bluetooth-microphone (with updates: the 2.5-3 s wait, when to tell the user to speak, on-device transcription with Offline Speech to Text).
name: android-bluetooth-microphone description: Record audio on Android from a Bluetooth microphone (classic SCO headset, LE Audio headset, hearing aids) instead of the phone mic. Use when AudioRecord, MediaRecorder or AAudio silently records from the phone mic, returns all zeros or digital silence from a Bluetooth or BLE headset, when setCommunicationDevice, availableCommunicationDevices, TYPE_BLE_HEADSET, TYPE_BLUETOOTH_SCO, VOICE_COMMUNICATION, routedDevice or setPreferredDevice come up, when the first seconds of a Bluetooth recording are missing, when logcat shows "skip kBleRestart due to no ble edge connected", when an app picks the car's hands-free microphone instead of the headphones (Android Auto connected), when a recording service crashes with "Neither user … nor current process has andr