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.

Great post, thanks. New taster user, a few questions:

Assuming BT CConected Car, and Power Any goes under profile?
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.


Great post, thanks. Just setup but a new taster user. Guessing I set Detects info like this on Profiles? And this under tasks? Also wasn’t sure where one put in exit state.

Thanks for any advice. About to get on a trip, so we’ll see if it turns on at least to test.

620E7445-F6BD-4416-9E62-5247E92B962A.jpeg 00CEA28B-7820-41A8-B470-D7645E66A815.jpeg
 
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.
Can you provide information on how you got it working? I tried setting it up but never once got it to read anything to me. I tried SMS, Hangouts, etc. and it never worked. :(
 
@DPOWERS14, @MorrisonHiker,
Must have missed this along the way. In tasker, I set up a profile in which 2 conditions are met:
- Car connected via BT
- Phone is powered

A "Car Settings" task is launched when true:
- Lauch Adroid Auto
- Send intent: com.turboled.audiobtplus.ON

So when I dock my phone it launched the app and configures the audio channel to go through the car speakers. When I undock, I set Car Mode to "off" and reverse the intent: com.turboled.audiobtplus.OFF

I do some other stuff with audio volume, but that's all user preference. If I see a notification in Android Auto, I can ask google to read it to me, or start a new text message or whatever. The key is no pause between voice commands (like no waiting for a beep after saying "OK, Google"). Say it all at once like "OK Google call my wife mobile" at it works. Sometimes it gets clipped and it will ask me "what number" but that's pretty rare and it almost never fails altogether.

Still using this setup since the OP and still like it.
 
  • Like
Reactions: Utahken
This has stopped working for me now - not sure if it my new Pixel 5 or something with the way Android Auto works now. Now, when Android Auto starts, it opens the phone audio channel but doesn't close it like it used to. I have to "hang up" the phone in order to be able to hear any other audio. And when I try to invoke the Google Assistant nothing happens at all.

Doesn't matter whether I have media enabled on the Bluetooth profile or not.

AudioBT is still working properly when I test it separately outside of Android Auto.