Quick audio output switch - Google Pixel 2 Questions & Answers

Hi,
I'm looking for something (app, magisk/xposed module, ROM that supports this...) that'll provide a quick and simple way to switch between audio outputs without disconnecting anything. In Android P we can connect to multiple Bluetooth devices and switch the output between them, by setting the 'active' device in the Bluetooth menu. We still can't route audio to the speaker while being connected to a Bluetooth device, though, and going to the Bluetooth menu is kinda slow anyway.
What I have in mind is something similar to the solution in Samsung Galaxy devices, where when you have multiple audio devices available you get a persistent notification that allows quickly switching between them. I believe it's even possible to pick audio output for specific apps somewhere in the settings.
Suggestions?

Related

[Q] Use bluetooth headset mic instead of phone mic

I've searched around on the forums for an answer to this but could never find anything that seems to match up to my issue.
I have a A2DP enabled headset and want to use it with apps such as Team Speak 3 beta, Vent, and other apps. But for some reason although phone media happily plays over onto my headset. My phone continues to only use the mic built into the phone instead of the bluetooth headset mic.
Any apps designed to use the headset specifically work (ie. normal phone calls, skype, vlingo) but otherwise apps ignore the headset mic.
I already tried using apps like BT Mono and Super BT Mono Froyo but they seem to only pipe audio to the headset, but don't do anything at all with the headset mic.
Does anybody know how to get the headset mic to be selected by apps instead of just the built-in mic?
My device is a Sumsung Galaxy S II ( I9100 ). Both Stock and CyanogenMod Gingerbread
good good good
Still hoping someone may know how to get the Galaxy S II phone to use a bluetooth headset mic instead of the built-in mic on the phone.
I'm really stumped on how to do this.
I still haven't seemed to have any luck finding a way to forcefully map apps to use the headset mic. I'm beginning to wounder if it's possible with the Android OS.
I have the galaxy s2 as well and I've retired several different things and have been unsuccessful with anything I've tried so far... Really difficult to drive and use vent without a headset.
Yeah I'm wanting to do the same thing.. I don't spose you've found a way in the last couple of months? Surely it can be done - may need to get a dev to write something for it though..
Sorry Lilfellabob, still no luck. I find it odd it's so difficulty to remap audio settings.
Even in Ice Cream Sandwich I can't find a way.
The app would need to be written to accept it. Its not a matter of your phone. Its the apps. Think about it for a min. If it works on apps made to use it but another app doesn't work then where does the problem lay?
The thing is, typically other apps should be able to re-route the app to use the headset mic. Alike how there are apps that can force other apps to use bluetooth audio instead of the phone speaker, even if the phone/headset can't use a2dp.
Dav_Edward said:
The thing is, typically other apps should be able to re-route the app to use the headset mic. Alike how there are apps that can force other apps to use bluetooth audio instead of the phone speaker, even if the phone/headset can't use a2dp.
Click to expand...
Click to collapse
Only if the code is there for it to do it. If they don't code it in then it doesn't work.
I'm having a similar problem but slightly the opposite.
I pair my phone to a Bluetooth device that lets me hear phone output on my car's speakers. However, the phone tries to use Bluetooth for the microphone when none exists. I want to force it to use the on-phone microphone. I can talk and talk but no one can hear me, unless I set the phone output to speaker or handset, which implies setting the phone input to amplified built-in mic, or just built-in mic, respectively.
In the Bluetooth settings I can set to use the Bluetooth device for music or phone, but ideally I would want "Phone" to be separated into "Phone output" and "Phone input" so I could uncheck input (and thus use the built-in mic.) This should be implemented at the Android level so that the setting can apply to all apps.
The same problem occured when I wired (2-stripe phone-to-car audio only, no mic) my Palm Pre directly to my car. I just tried with my GNex and it was smart enough to use the built-in mic when a microphone-less plug was connected.
zelendel said:
Only if the code is there for it to do it. If they don't code it in then it doesn't work.
Click to expand...
Click to collapse
wrong. its in the kernel. the new firmware on the android is is capable to transmit Audio Steam to Headset device as Audio only. i wont go 100% against coding to force it to but if they wanted to theres have to be some kind of exploit to do so. lets say if skype were to find that exploit or code it, it would be probably violate android policy.
HtcEvo4gLTE said:
wrong. its in the kernel. the new firmware on the android is is capable to transmit Audio Steam to Headset device as Audio only. i wont go 100% against coding to force it to but if they wanted to theres have to be some kind of exploit to do so. lets say if skype were to find that exploit or code it, it would be probably violate android policy.
Click to expand...
Click to collapse
Actually, what's going on is Skype is using the 'bluetooth device' hook of some sort, just like other apps that support piping audio to the bluetooth headset. However most apps don't use the bluetooth device API/hook and just dumbly send their audio to 'default output device' and 'default input device' blindly and let the OS or Kernel decide where to send it.
The OS or Kernel when it senses a bluetooth device with the 'media' profile on it is present, it changes the default output device to the headset, but it doesn't seem to bother doing the same for the bluetooth mic for the default input device.
Because apps like Teamspeak 3 just blindly use default audio device because it doesn't use bluetooth APIs in the app itself, I have no way to make it use the headset mic.
I wish someone could make a mod or app that will allow mapping the default input to a bluetooth mic when present.
As far as I know, Skype has problems using the BT mike as well. In fact, they took a user survey regarding the issue for android and iOS users. However, I cannot find the results of that survey / study, and Skype recommendations thereof.
User choice to use BT mike seems so BASIC to me, I wonder how it was overlooked...!
Rooting will crack open the full power of your Android device!
Dav_Edward said:
Sorry Lilfellabob, still no luck. I find it odd it's so difficulty to remap audio settings.
Even in Ice Cream Sandwich I can't find a way.
Click to expand...
Click to collapse
zelendel said:
The app would need to be written to accept it. Its not a matter of your phone. Its the apps. Think about it for a min. If it works on apps made to use it but another app doesn't work then where does the problem lay?
Click to expand...
Click to collapse
Rooting the device would give apps or the user permissions to modify system audio controller's (idk if it is anything like ALSA or anything..) settings to make app use the audio channel for the bluetooth headset... an example for the Galaxy s2 i9100 i have is the radio app "Sprit FM" has a "volume control stream" setting which allows the user to select what volume "control" will control the volume of the app's audio output
anywho... i hope it helps a little
rwong48, I have now the same problem that you have described. Have you solved it with any app for Andorid?
Thanks!
Solution
I found an app that solves this problem on android devices, it's called btmono and you can find it in the Google store. I tried to post the link but I don't have enough posts under my belt...
Anyways, pair your device, open the program (such as ts3), connect to your server and then turn on btmono. Voila!
Well, I tried to delete this after I saw that you had already tried btmono, but I couldn't figure out how so just disregard this message.
I already tried btmono, sadly although it works for the output audio, it does *not* work with the headset mic. Programs like TS3 will still keep using the phone's built-in mic, not the headset mine despite using btmono. The only thing btmono does is pipe the output audio to the headset only.
Thanks for the suggestion though
I can't believe they haven't fixed that yet. It is so basic...
Hey guys I'm going through the same issues with my note 2. Svoice was the only one that works but its painfully slow and inaccurate.
Anyways I've tried utter! robin and aivc. Aivc works pretty good but at least it uses the mic.
Utter is really promising but no Bluetooth mic. The devs have acknowledged it though. So hopefully soon.
Update: AIVC has one downfall. The app can't open if the screen is locked like utter and svoice can when prompted from bluetooth. Also, it only listens automatically the first time. If you close it without killing the app, you'll have to press the mic icon manually every time (which takes away from the purpose of handsfree).

Howto AutoUse BT Pair for Media Audio?

I've touched on this question before but I may have been using some wrong terminology.
On my S3 I have successfully created a BT pairing with a BT Audio Device use which has a steroe out fed into my car's head unit's Aux In.
So, it is Auto-Paired. That is, when I step into my car and turn on the ignition thus powering up the BT Audio Device the paring is available to be used for Media Audio.
However, in order for my phone to route audio to the BT Audio Device I must enter the phone's BT menu and tell the phone to connect to the Device for Media Audio.
I can either do this through the notification pane to see pairings then tap the pairing to use for Media Audio or I can go through settings->BT and do the same thing.
Either way, it's a huge PITA to do this every single time I get into my car.
There has got to be a way to have the phone automatically route Media Audio through this BT Audio Device upon detection. My previous two phones had nowhere near the ability of my S3 but they had no issues whatsoever with automatically pairing and routing audio to this BT Audio Device.
Is the S3 really this stunted in the BT department? If so, is there an app that fixes this stupidity with grace and non-intrusiveness?
crabapples said:
I've touched on this question before but I may have been using some wrong terminology.
On my S3 I have successfully created a BT pairing with a BT Audio Device use which has a steroe out fed into my car's head unit's Aux In.
So, it is Auto-Paired. That is, when I step into my car and turn on the ignition thus powering up the BT Audio Device the paring is available to be used for Media Audio.
However, in order for my phone to route audio to the BT Audio Device I must enter the phone's BT menu and tell the phone to connect to the Device for Media Audio.
I can either do this through the notification pane to see pairings then tap the pairing to use for Media Audio or I can go through settings->BT and do the same thing.
Either way, it's a huge PITA to do this every single time I get into my car.
There has got to be a way to have the phone automatically route Media Audio through this BT Audio Device upon detection. My previous two phones had nowhere near the ability of my S3 but they had no issues whatsoever with automatically pairing and routing audio to this BT Audio Device.
Is the S3 really this stunted in the BT department? If so, is there an app that fixes this stupidity with grace and non-intrusiveness?
Click to expand...
Click to collapse
I feel ya, in the past, all I had to do was toggle BT on and go, now there's two or three extra steps which almost defeats the use of a toggle.
I just started searching for some answers and am honestly surprised no one else has made a big deal about this. If I find something, I'll post it up... For now, going to take a look at some system files and build.prop stuff, but it's not really my department.
Got some NFC tags and NFC Task Launcher hoping I could circumvent the BS with a hardware hack. But no, the best this does is auto toggle the BT radio and open the device selection screen where 2 more taps are required to actually use the device for media audio. Any new insight out there? Considering Tasker app but it is rather expensive and no free version to see if it does the trick.
My Bluetooth Auto Corrects Just fine to my cars Bluetooth... Toggle on and go. Running AOKP currently but it worked properly on stock, stock rooted, and Synergy as well.
I haven't gotten a chance to try this yet but I probably will tomorrow.
Tasker forum post indicating the problem is well known, prevalent and hardly any fixes exist:
https://groups.google.com/forum/?fromgroups=#!searchin/tasker/bluetooth$20audio/tasker/TLsjT9Exle8/ZLlgvEn5vUUJ
An app that forces the connection amongst other things:
https://play.google.com/store/apps/details?id=a2dp.Vol
A Tasker plugin leveraging the force connect code which happens to be GPL'd in case any of our fine developers would like to start making ROMs that address this major drawback of using a S3:
http://code.google.com/p/a2dp-connect/
crabapples said:
I haven't gotten a chance to try this yet but I probably will tomorrow.
Tasker forum post indicating the problem is well known, prevalent and hardly any fixes exist:
https://groups.google.com/forum/?fromgroups=#!searchin/tasker/bluetooth$20audio/tasker/TLsjT9Exle8/ZLlgvEn5vUUJ
An app that forces the connection amongst other things:
https://play.google.com/store/apps/details?id=a2dp.Vol
A Tasker plugin leveraging the force connect code which happens to be GPL'd in case any of our fine developers would like to start making ROMs that address this major drawback of using a S3:
http://code.google.com/p/a2dp-connect/
Click to expand...
Click to collapse
I haven't had any trouble with bluetooth devices reconnecting to my phone as soon as I power them on. I'm running cyanogenmod 10 rom.
Also you can get free trial of tasker from here tasker.dinglisch.net/download.html
zxsix said:
I haven't had any trouble with bluetooth devices reconnecting to my phone as soon as I power them on. I'm running cyanogenmod 10 rom.
Click to expand...
Click to collapse
It seems the issue may be primarily with BT Audio Gateways. I don't have this issue with my laptop at all and I'm imagining car head units rarely see this problem.
That said A2DP Volume App fixed this issue for me. Once configured I did have to manually set the device to use media audio one last time before A2DP Volume started doing it for me. I configured NFC Task Launcher to kill wifi, enable BT and launch A2DP volume when it contacts the tag in my car and it works perfectly. Since NFC Task Launcher front ends into Tasker and Tasker has the A2DP force connect plugin available I'm seriously considering getting Tasker for all the other cool features it can do besides scratching this particular itch.
crabapples said:
I've touched on this question before but I may have been using some wrong terminology.
On my S3 I have successfully created a BT pairing with a BT Audio Device use which has a steroe out fed into my car's head unit's Aux In.
So, it is Auto-Paired. That is, when I step into my car and turn on the ignition thus powering up the BT Audio Device the paring is available to be used for Media Audio.
However, in order for my phone to route audio to the BT Audio Device I must enter the phone's BT menu and tell the phone to connect to the Device for Media Audio.
I can either do this through the notification pane to see pairings then tap the pairing to use for Media Audio or I can go through settings->BT and do the same thing.
Either way, it's a huge PITA to do this every single time I get into my car.
There has got to be a way to have the phone automatically route Media Audio through this BT Audio Device upon detection. My previous two phones had nowhere near the ability of my S3 but they had no issues whatsoever with automatically pairing and routing audio to this BT Audio Device.
Is the S3 really this stunted in the BT department? If so, is there an app that fixes this stupidity with grace and non-intrusiveness?
Click to expand...
Click to collapse
You can fix this relatively easy by getting the app Tasker. I use it to do things like automatically start the music player I want when headphones are plugged in, to turning up the brightness automatically when I am getting an incoming call, etc. I am fairly certain you could set up the program to do whatever you want via bluetooth if you fiddle with it.
Gluck!
mdt73 said:
You can fix this relatively easy by getting the app Tasker. I use it to do things like automatically start the music player I want when headphones are plugged in, to turning up the brightness automatically when I am getting an incoming call, etc. I am fairly certain you could set up the program to do whatever you want via bluetooth if you fiddle with it.
Gluck!
Click to expand...
Click to collapse
LOL, if you had only read the rest of the thread...
Yeah, Tasker cannot do this OTB but with the A2DP Connect Plugin it can. Or you can just run the A2DP Volume app and do the same for free.
That the A2DP Connect code is GPL it would be super sweet if our developers incorporated the magic into the ROMs so that a base install didn't need apps to do something so simple as automatically route media audio to BT gateways.
This happens to me when I use the wrong settings in my cars head unit. My Toyota gives me the option to pair as a multimedia device, a phone or both. If you set it up as just a multimedia device then you won't have some functionality. Check your head unit manual and try to re-pair. You might have to delete the existing pairing for it to work right.
rfmodeler said:
This happens to me when I use the wrong settings in my cars head unit. My Toyota gives me the option to pair as a multimedia device, a phone or both. If you set it up as just a multimedia device then you won't have some functionality. Check your head unit manual and try to re-pair. You might have to delete the existing pairing for it to work right.
Click to expand...
Click to collapse
Yeah, it's not a head unit, it's an audio gateway that basically is just a BT receiver with a stereo out and no interface so it is what it is with no configuration options. This issue with the S3 appears to be primarily related to these types of devices.
crabapples said:
Yeah, it's not a head unit, it's an audio gateway that basically is just a BT receiver with a stereo out and no interface so it is what it is with no configuration options. This issue with the S3 appears to be primarily related to these types of devices.
Click to expand...
Click to collapse
Oh okay. When I look under the bluetooth menu in CM10 I have a paired connection that I named Car Multi-Media and if I look at its settings I see profiles called Phone audio and Media audio. I'm guessing you just have a Media audio profile. Not sure how to help you there. Sorry.

One click - Connect 2 Specific Bluetooth device for A2DP and Phone app

An amazing One click - Connect 2 Specific Bluetooth device for A2DP and Phone app:
Bluetooth Pair
https://play.google.com/store/apps/details?id=com.gnssoftworks.bluetoothpair
found it very useful for swapping bluetooth headphones between devices WITHOUT turning off Bluetooth entirely or going into the settings menu.
Example Use Case:
I have one Stereo Bluetooth headset with mic (two profiles - phone and A2DP audio)
I have one Android Phone and one Android Tablet.
Phone Profile is always connected to the Android Phone, but the A2DP audio changes depending on which device you want to listen to music from.
Normally, if you want to listen to audio from the Tablet when your headset's A2DP profile is connected to the phone, you'd have to first go to the settings menu of the phone, and disconnect the A2DP, leaving Phone Profile connected. Then go to the settings menu on your tablet and connect the A2DP only.
Then you'd have to do the opposite if you want to listen to audio from the Phone again.
Takes a long time.
With Bluetooth Pair, you can specifically connect or disconnect to a specific device and specific profile (phone / a2dp) by widgets.
So you won't have to turn off the bluetooth completely on one device just to allow your headset to connect another device. Nor do you need to go into settings anymore.
1.) Just tap on the A2DP device specific widget on the phone to disconnect, the A2DP Profile from the phone
2.) go to the Tablet, and tap on the A2DP device specific widget to connect the A2DP profile of the headset to the Tablet
Two taps!
Would you mind sharing a code snippet on how you achieve this? I've been working on a little program that I intend to use around the house and this is the missing piece that I can't figure out. Basically, I have some NFC tags spread around the house and a receiver app that triggers various actions. One of them enables bluetooth on my device (if off), turns on my home audio receiver (over telnet), connects to the receiver's A2DP device (this is the missing piece), and launches a music app.
I've seen examples where this works using an AIDL method, but from what I've gathered this no longer works under Android 4.2. Does your app work on 4.2? Any hints you can provide?
Thanks!
Brian
I'm not the writer of this app.
You could try contacting them via the email listed on Google Play.
BTW, while you're making your app, please dedicate a thread to it on XDA so we can all beta test and buy it later!
klau1 said:
I'm not the writer of this app.
You could try contacting them via the email listed on Google Play.
BTW, while you're making your app, please dedicate a thread to it on XDA so we can all beta test and buy it later!
Click to expand...
Click to collapse
Oh, OK. I just assumed this was your app.
After reading the Play Store description more carefully, I don't think this app actually does what I'm trying to do (programmatically establish an A2DP connection). It appears this app enables / disables certain profiles but the actual connection is still handled by the OS.
As far as the app I'm making, I was intending it to just be something for personal use. I'm planning on keeping it very lightweight and tailored specifically to my needs. For it to be used by anyone else they would have to have the same brand of A/V receiver as me (Pioneer) that supports the same telnet commands. Most of the rest of the functionality of the app can be duplicated by using some of the existing NFC apps like NFC Task Launcher. If I ever develop it into something interesting that could be used by a wider audience I probably will post it on XDA for feedback though.

[Q] Android 5.0 Bluetooth Visibiltiy

I'm pretty sure I remember this setting being available in the preview versions just like in kitkat, but on the recently released images I cannot find the setting to change the bluetooth visibility setting to never time-out. The pioneer bluetooth stereo in my car absolutely will not recognize the presence of my phone unless it is discoverable.
Am I missing something, or has this option simply been removed.
If it has been removed I'm hoping maybe there is something I can modify to get this option back.
Thank you
xxrzdxx said:
I'm pretty sure I remember this setting being available in the preview versions just like in kitkat, but on the recently released images I cannot find the setting to change the bluetooth visibility setting to never time-out. The pioneer bluetooth stereo in my car absolutely will not recognize the presence of my phone unless it is discoverable.
Am I missing something, or has this option simply been removed.
If it has been removed I'm hoping maybe there is something I can modify to get this option back.
Thank you
Click to expand...
Click to collapse
If you open the bluetooth settings it says, that your device is visible to all devices as long bluetooth is enabled. Only in this screen your bluetooth device is visible to other devices.
I hope google fixes this, because its too confusing.
Yes, unfortunately that's the only reference to bluetooth visibility I have found.
My understanding in 5.0 is that your device's Bluetooth is only visible to paired devices, except when the Bluetooth Settings page is open. When the Bluetooth Settings page is open on your device it will be visible to all nearby Bluetooth devices (which is what you need when pairing). Have you paired the Pioneer Bluetooth stereo with your device?
There no longer appears to be an option as there was on 4.4 to permanently set 'Visible to all nearby Bluetooth devices'. However, why would you want that, other than when setting up pairing? It's a security risk.
xxrzdxx said:
I'm pretty sure I remember this setting being available in the preview versions just like in kitkat, but on the recently released images I cannot find the setting to change the bluetooth visibility setting to never time-out. The pioneer bluetooth stereo in my car absolutely will not recognize the presence of my phone unless it is discoverable.
Am I missing something, or has this option simply been removed.
If it has been removed I'm hoping maybe there is something I can modify to get this option back.
Thank you
Click to expand...
Click to collapse
I'm in your same situation, I was googling around and I found this... I'm on CM12 and wish that we can find a solution for make the bluetooth always discoverable on AOSP roms. I own a Lg G3 and on the stock Android 5.0 rom the option (like in KitKat) it still there!
The only reason I was really looking for this features is that my older Pioneer head-unit in my car (DEH-P9800BT) won't connect automatically to my phone unless the phone is discoverable. I've managed to adapt my other bluetooth connections that were set this way to work without the option, but I've tried for years (since my Palm Treo 650p) to get the head unit to connect automatically with no luck.
I am also wondering why they have hid this feature...
Looks like they are trying to go like (cr)Apple, whereas your iPhone is only discoverable within the Bluetooth menu.

No sound over HDMI after ending sleep mode

I have no clue where the perfect forum section for this would be so I do it here and hope people find it.
Especially Nvidia devices seem to suffer from a problem that can drive you nuts if you are a power user.
But I had the issue with a few other chipsets and amps as well.
The problem seems to always look like this:
After some use you put your device in sleep mode, turn the TV/monitor off and when you want to continue there is no sound.
All drivers and hardware seem to perform normal and nothing you do bring the sound back until you restart.
Usual recommendations from the web, Nvidia forums, MS and dedicated tech sites include:
Installing a different driver
Using full featured and quality cables
Searching for drivers and services that might interfere
Getting new graphics card or upgrading the TV/monitor
None of the above really works or makes and difference if you ask me.
The fix on many modern TV's is simple and some monitors should have similar settings available.
For me the trick works like this:
Check the HDMI setting on the TV/monitor.
For the affected input you are likely to find something to change/activate/de-activate HDMI 2.0.
Usually this setting is set to auto mode and the system should use the right setting once a HDMI device connects.
And there is the culprit of the implementation for (mostly) Nvidia devices!
Sound will be activated after a video signal is established but the card will do the HDMI settings after establishing the video.
In the meantime the sound part fails to initialise.
Changing the TV HDMI setting from AUTO to anything else will fix the issue.
Of course it makes sense to first check if your device fully supports and uses HDMI2.0, if so enable it otherwise disable it on the TV.
Now, when coming from sleep the sound shouls always be active.
What exactly happened and why does it work?
HDMI2.0 mainly provides a higher bandwidth, so all quality HDMI1.4 cables and equippment will work just fine.
But to make it work both ends must use the same standards.
Some chipsets like Nvidia like to negotiate the standards for best possible performance.
This goes something like that:
Graphic system is activated
Check for HDMI connection, multiple standards supported
Set resolution as reported from the TV
Enable sound
Check HDMI standard and if HDMI is supported switch from 1.4 to 2.0.
The last step here is what messes things up.
It seems that even if the standard remains unchanged the sound will be initialised again but fails to know where to go.
If the HDMI settings on the TV are fixed instead of being set to AUTO it goes like that:
Graphic system is activated
Check for HDMI connection, fixed setting
Switch to the set HDMI standard
Set resolution as reported from the TV
Enable sound
A tiny difference in the approach and the sound finally knows where to go
Special case, amplifiers...
For Nvidia the same problem happens if you have an amp connected for better sound.
There are different ways to connect an amp these days.
Sometimes the amp passes the HDMI signla through and hijacks the audio signal only.
Sometimes you use a dedicated output from your device for the amp.
And in rare cases you feed the amp back from the TV with a dedicated amp output.
The possible options for failure are a bit higher as you can imagine by the number of combinations.
Either way the approach is the same.
If you can change the HDMI settings on the amp then check there first.
After all it could be that the amp tries to negotiate the right standard.
If not then again check on the monitor/TV and change the HDMI setting from auto to something else.
If you use a dedicated sound output on your device, even if it is optical, then please make sure it is set as the default audio output.
Even better, if you only use the amp for sound and make no use of the sound coming over HDMI then disable the sound for HDMI completely.
This way the HDMI output won't get priority or be mixed in, which can often cause crackling sound.

Categories

Resources