Context
Android currently uses default AudioManager routing with no explicit Bluetooth handling. On iOS this caused real bugs: HFP (.allowBluetooth) hijacked AirPods play/pause and degraded quality; the fix was A2DP-only output + built-in mic (v1.6.0-beta.1 #85), plus an earpiece-routing fix (#96).
The Android equivalent question: when a BT headset is connected, does AudioRecord with MediaRecorder.AudioSource.MIC use the (low-quality SCO) headset mic or the built-in mic? Does music keep playing / duck properly?
What to do
- Test matrix: BT earbuds + music playing, BT earbuds idle, wired headset, no headset — on Pixel 4
- Decide policy (recommendation: built-in mic for quality, like iOS; don't start SCO)
- Implement explicit routing if defaults are wrong (
setPreferredDevice, avoid startBluetoothSco)
- Verify media keys / playback aren't hijacked during recording
Acceptance criteria
Context
Android currently uses default
AudioManagerrouting with no explicit Bluetooth handling. On iOS this caused real bugs: HFP (.allowBluetooth) hijacked AirPods play/pause and degraded quality; the fix was A2DP-only output + built-in mic (v1.6.0-beta.1 #85), plus an earpiece-routing fix (#96).The Android equivalent question: when a BT headset is connected, does
AudioRecordwithMediaRecorder.AudioSource.MICuse the (low-quality SCO) headset mic or the built-in mic? Does music keep playing / duck properly?What to do
setPreferredDevice, avoidstartBluetoothSco)Acceptance criteria