Welcome to Tesla Motors Club
Discuss Tesla's Model S, Model 3, Model X, Model Y, Cybertruck, Roadster and More.
Register

I (finally) got Android Assistant to Work in the M3!

This site may earn commission on affiliate links.
I just wanted to get this posted in case others have similar issues with Bluetooth and a desire to use Android Auto/Google Assistant as part of your drive (announcing messages, voice dictating/replying to texts, etc). I have a Samsung Galaxy S9+ FWIW. Bit of a long post, apologies. Hope this helps others.

So the premise for the problem is that you can't hear/interact properly with Google Assistant because it plays over the media channel in Android, and can only be heard over the Bluetooth audio input in the Model 3. That's fine if you're using your phone for music, but I don't, preferring Slacker radio. So the only real way to deal it out of the box, is to switch inputs when driving, which is not something I'm keen on doing.

So my "solution" was to disable media output to the Tesla from my phone, which made the media play through the phone speakers instead. That seemed to work, but exposed a defect/bug (not sure on who's side) that caused the bluetooth connection to flap regularly as seen in the video, below.


This condition completely goes away when media is re-enabled. So I get a solid phone connection again (whew!), but I'm back to square one in terms of using voice.

I started thinking about how I could re-route the media channel to the call audio hoping that would work. I used an app called SoundAbout back in the day, but it only crashes on my current phone. After a quick search on Google Play, I found a few apps that can do this successfully, and landed on AudioBT Plus: https://play.google.com/store/apps/details?id=com.turboled.audiobtplus

When this service is enabled, the audio is routed through the call channel as desired, and appears to the car as a phone call. It plays through the speakers and sounds great. I do find it's necessary to immediately issue the command after "OK Google", meaning I used to wait until it beeped, prompting me to speak. The pause seems to drop the connection, but if in a single sentence I say, "OK Google Text so-and-so" it works a treat.

I don't want the service running all the time, and I have several BT headsets I use with my phone so I needed a way to set it all up just for the car. Fortunately I'm a Tasker user and this app supports intents (instructions that can be sent directly to the app). So basically, I tell Tasker to get things configured for my car when it detects the BT connection AND is charging, as those are the conditions in which I'd be using all of this.

Here's the basic Tasker Script:

If it detects "Car Connected" and "Power Any"
  • Launch App "Android Auto"
  • Set Media Volume to 15 (max)
  • Send intent: com.turboled.audiobtplus.ON

The exit state looks like:
  • Set Media Volume to 2 (my preference)
  • Send intent: com.turboled.audiobtplus.OFF
  • Display > Car Mode: Off, check option Go Home

More info on AudioBT Plus intents here:
[APP][4.0+] AudioBT: Use Bluetooth headset for GPS and notification audio

Depending on your phone, it may be necessary to create a 1-2 second wait between commands, but mine seems to be OK without for now. Hope this helps!

TL;DR: AudioBT Plus sends voice assistant audio to the car speakers allowing me to properly interact with my Android and I'm happy now.
 
I just wanted to get this posted in case others have similar issues with Bluetooth and a desire to use Android Auto/Google Assistant as part of your drive (announcing messages, voice dictating/replying to texts, etc). I have a Samsung Galaxy S9+ FWIW. Bit of a long post, apologies. Hope this helps others.

So the premise for the problem is that you can't hear/interact properly with Google Assistant because it plays over the media channel in Android, and can only be heard over the Bluetooth audio input in the Model 3. That's fine if you're using your phone for music, but I don't, preferring Slacker radio. So the only real way to deal it out of the box, is to switch inputs when driving, which is not something I'm keen on doing.

So my "solution" was to disable media output to the Tesla from my phone, which made the media play through the phone speakers instead. That seemed to work, but exposed a defect/bug (not sure on who's side) that caused the bluetooth connection to flap regularly as seen in the video, below.


This condition completely goes away when media is re-enabled. So I get a solid phone connection again (whew!), but I'm back to square one in terms of using voice.

I started thinking about how I could re-route the media channel to the call audio hoping that would work. I used an app called SoundAbout back in the day, but it only crashes on my current phone. After a quick search on Google Play, I found a few apps that can do this successfully, and landed on AudioBT Plus: https://play.google.com/store/apps/details?id=com.turboled.audiobtplus

When this service is enabled, the audio is routed through the call channel as desired, and appears to the car as a phone call. It plays through the speakers and sounds great. I do find it's necessary to immediately issue the command after "OK Google", meaning I used to wait until it beeped, prompting me to speak. The pause seems to drop the connection, but if in a single sentence I say, "OK Google Text so-and-so" it works a treat.

I don't want the service running all the time, and I have several BT headsets I use with my phone so I needed a way to set it all up just for the car. Fortunately I'm a Tasker user and this app supports intents (instructions that can be sent directly to the app). So basically, I tell Tasker to get things configured for my car when it detects the BT connection AND is charging, as those are the conditions in which I'd be using all of this.

Here's the basic Tasker Script:

If it detects "Car Connected" and "Power Any"
  • Launch App "Android Auto"
  • Set Media Volume to 15 (max)
  • Send intent: com.turboled.audiobtplus.ON

The exit state looks like:
  • Set Media Volume to 2 (my preference)
  • Send intent: com.turboled.audiobtplus.OFF
  • Display > Car Mode: Off, check option Go Home

More info on AudioBT Plus intents here:
[APP][4.0+] AudioBT: Use Bluetooth headset for GPS and notification audio

Depending on your phone, it may be necessary to create a 1-2 second wait between commands, but mine seems to be OK without for now. Hope this helps!

TL;DR: AudioBT Plus sends voice assistant audio to the car speakers allowing me to properly interact with my Android and I'm happy now.
Very intriguing! Anyway you could post a video of how the final solution works in action??
 
do you think you could post your exact screenshots of tasker? not sure what i have wrong.

it may be
  • Send intent: com.turboled.audiobtplus.OFF
should this be under the Action label (the very first option) and the rest of the options below (Cat, Mime, Data, Extra, etc) should be blank?
 
This is a pretty slick solution. I sometimes use my phone for navigation while listening to music on the car, so Google maps navigation will interrupt the music when an important navigation notification comes in. Or if I want to ask google a question " ok Google what is Tesla stock?"
 
do you think you could post your exact screenshots of tasker? not sure what i have wrong.

it may be
  • Send intent: com.turboled.audiobtplus.OFF
should this be under the Action label (the very first option) and the rest of the options below (Cat, Mime, Data, Extra, etc) should be blank?

The details are in the XDA link above, but to enable AudioBT from Tasker:
Set action = com.turboled.audiobtplus.ON
Cat = Default
Target = Service

Leave all other options as is. To disable it, same settings, but change ON to OFF

If you can't get it to work, ignore tasker for the moment and just enable the AudioBT service. If it works you know it's a tasker script issue.
 
  • Like
Reactions: tipton
The details are in the XDA link above, but to enable AudioBT from Tasker:
Set action = com.turboled.audiobtplus.ON
Cat = Default
Target = Service

Leave all other options as is. To disable it, same settings, but change ON to OFF

If you can't get it to work, ignore tasker for the moment and just enable the AudioBT service. If it works you know it's a tasker script issue.

excellent, thanks.

i thought that was a link to the play store, not xda which is why i hadn't checked it. my bad. should be good after making those changes i think. thanks
 
man, so i can get this to work with the model 3 with one big problem - with AudioBT plus running it will not recognize the OK Google command. I can hit the microphone and dictate and it will read back messages, etc but no matter what setting combination I try OK Google will not work on the Note 8. In fact, it will continue to not work even after the service is stopped and won't start working until i reboot the phone.

Going to have to read that thread on xda. if anyone has any tips or ideas let me know.
 
man, so i can get this to work with the model 3 with one big problem - with AudioBT plus running it will not recognize the OK Google command. I can hit the microphone and dictate and it will read back messages, etc but no matter what setting combination I try OK Google will not work on the Note 8. In fact, it will continue to not work even after the service is stopped and won't start working until i reboot the phone.

Going to have to read that thread on xda. if anyone has any tips or ideas let me know.

Try this:
Go to the Google App
Click the hamburger menu on the bottom right > Settings
At the top under Google Assistant, click Settings
Under Devices, click Phone > Other Voice Settings, Disable 'Records audio through BT headset if available'

This should force it to use the phone mic instead of the car's. It may also be worthwhile to retrain google voice while in your car config in case it's throwing it off acoustically for some reason. But I didn't have to this.

How do you get the phone to start listening ? Or does being in Android Auto keep it listening indefinitely?
Android is like Alexa (or Siri), where it's actually listening all the time, but uses a wake word to start responding (i.e "OK Google").
 
Try this:
Go to the Google App
Click the hamburger menu on the bottom right > Settings
At the top under Google Assistant, click Settings
Under Devices, click Phone > Other Voice Settings, Disable 'Records audio through BT headset if available'

This should force it to use the phone mic instead of the car's. It may also be worthwhile to retrain google voice while in your car config in case it's throwing it off acoustically for some reason. But I didn't have to this.


Android is like Alexa (or Siri), where it's actually listening all the time, but uses a wake word to start responding (i.e "OK Google").


Damn - yeah i already didn't have that setting selected. I even tried selecting it to see if there as any difference and there was not.

Its so weird because everything else works perfectly. I don't have any problems with OK Google when AudioBT isn't running

any other ideas on what to try? SoundAbout doesn't crash on my phone but i'm really unsure what settings to try with that if you have any idea I'd appreciate the help.
 
Android is like Alexa (or Siri), where it's actually listening all the time, but uses a wake word to start responding (i.e "OK Google").

This depends on the phone. Older phones only listen under certain conditions, in my case my phone will listen any time the screen is unlocked, but not when it's off (though Android Auto might change this, I haven't tried it yet). I think I remember seeing an option to turn it on all the time but that would increase battery usage, and I can't remember where the setting was. My previous phone would only listen when in the Google app itself. It couldn't listen at any other time, because the OS was older and perhaps also hardware limitations / requirements.
 
I just can't get this thing to recognize the OK GOOGLE command no matter what I try.

I even upgraded my rooted and unlocked Note 8 to Oreo tonight just in the hopes it would work on Oreo but it does the exact same thing.

I can tell you though - don't mistakenly ever restore your app data for the Tesla app with Titanium backup if upgrading. Man, did it screw up my Model 3 phone as key. It must sense something is wrong security wise and lock things down because even the key card wouldn't work and the app will show connected but not work. If i rebooted the phone from in the house out of range I could finally unlock the car. I'm still not sure why the key cards didn't work though. Then had to clear app data and re-setup as a key and things were back to normal.

I really want to get this AudioBT plus working and I've tried everything I can think of. even tried the dual audio BT setting that the Note gives you to no avail.
 
I just can't get this thing to recognize the OK GOOGLE command no matter what I try.

I even upgraded my rooted and unlocked Note 8 to Oreo tonight just in the hopes it would work on Oreo but it does the exact same thing.

I can tell you though - don't mistakenly ever restore your app data for the Tesla app with Titanium backup if upgrading. Man, did it screw up my Model 3 phone as key. It must sense something is wrong security wise and lock things down because even the key card wouldn't work and the app will show connected but not work. If i rebooted the phone from in the house out of range I could finally unlock the car. I'm still not sure why the key cards didn't work though. Then had to clear app data and re-setup as a key and things were back to normal.

I really want to get this AudioBT plus working and I've tried everything I can think of. even tried the dual audio BT setting that the Note gives you to no avail.

I can't believe it would be that different between the the Note 8 and Galaxy S9. Sorry for all your trouble. :(
I'm assuming you're using the full version of AudioBT? Do you have "force virtual call" enabled in the settings? There's some troubleshooting settings in there as well. Outside of tasker, just running the app, not connected to the car, OK Google still doesn't work?

Other than that, I guess you could try other apps. I can't get soundabout to run, but there's others out there that may be worth trying. I liked this one because of the tasker integration. My guess is that there's something when it's running that is overriding the mic, but as I said, it basically works out of the box for me, so not sure what else to tell you.
 
BETTER SOLUTION!
This seemed like a great solution to a problem that should not exist. I was working to implement it while investigating SMS-reading apps. I came across ReadItToMe, an Android app, that solves this issue elegantly. The app has a "BT Mono" setting that connects to the M3's system, connects and disconnects only when you are in the M3, reads SMS messages and takes voice commands to respond to messages received. For me, it's solved this issue. See if it fits your needs.