Nexus 7 Head Unit Installation – Part 8 – Tethering

Nexus 7 Head Unit Installation – Part 8 - Tethering

Voice and Internet Integration

So I’m not sure if I’ve mentioned it in any of the earlier posts, but I set out to have my headunit function as fully-featured as possible… without the Internet. I’ve had to make a few trade-offs and add some complexity as a result:

  • Can’t use my favorite navigation app, Google Maps.
  • Can’t leverage Google Now to the fullest extent
  • Need to add custom voice commands where Google Now would have saved me
  • Any voice commands that are fancy (in that they require Internet) need to do an Internet check first

Over the past few days I think I’ve reached a tipping point: I want my headunit to have a connection to the Internet. There are so many pros to having internet access… and many are an inverse to the cons I mentioned above:

  • Can use google maps to navigate
  • Can do web-searches
  • Can stream audio (if I upgrade my data plan on my phone)
  • Can leverage Google Now to its (almost) full potential
  • Email notifications in car
  • Syncing across devices as I drive (not just when parked at home/office)

So with this new revelation, let me talk about how I’ve been trying to get auto-internet on my tablet headunit.

Bluetooth Tethering

This was my first approach to getting internet access on my tablet via my phone. The idea was like this:

  • My Nexus 7 and my phone are always paired via bluetooth
  • My Nexus 7 would not need to have WiFi antennas on… ever.
  • When my phone is within range to pair with the headunit, I can trigger a profile in Tasker on my phone
  • The Tasker profile can turn on my Bluetooth tether option on my phone
  • My Nexus 7 should pick up the new Bluetooth tether and have internet access!

Well, that was the idea, but in practice, things were much more complicated for me. No surprise there.

Toggling bluetooth tethering on my phone automatically was the first thing I set out to do. I had configured a tasker profile for a state that would activate when a particular Bluetooth device was within range. Here’s where the problems started

  • I didn’t realize Tasker has to poll for bluetooth devices… It’s not something that’s triggered like an event.
  • Tasker’s default polling for this is 120 seconds, so I could potentially be waiting for up to 2 minutes after getting into my car to get internet on my Nexus 7.
  • This polling period is configurable, but I could only get it reliably working around 45 seconds… I’m sure it could be reduced even more, but it likely means battery drain.
  • Using a profile with a state in Tasker would have the bluetooth tethering disable after a period of time, even though my device was still “connected” (paired, at least) and within range

Okay, so this was already turning out to be pretty crappy. I spent about a day playing around with different things here, and finally decided that turning on the Bluetooth tether manually wouldn’t be so bad.

  • Get into my car
  • Pull out my phone
  • Go to settings
  • Press a button
  • Profit

Not so bad. Buttttttttt I figured I could make this a little more fun by using NFC tags! Neat. I haven’t used them before, but I ordered some from Amazon. The idea would be like the bluetooth profile, but instead by activating via NFC tag. I have no experience with these, so I’ll post another update later when I try them out!

So once bluetooth tethering was enabled on my phone, I figured my Nexus 7 would automatically get internet access… But no. And I couldn’t for the life of me figure out why. After poking around for a while, I realized it’s a little hidden checkbox:

  • On the Nexus 7…
  • Go to settings
  • Go to bluetooth
  • Note the device you’re paired with (in my case, my phone)
  • Press the little gear icon
  • Check off “Use for: Internet access”

Boom. Internet. The problem? I can’t find a way to automate this in Tasker without some dirty UI clicking… which I’d really really like to avoid. If you know a way, PLEASE mention it in the comments!

At this point, I felt bluetooth tethering was a bust. I was having problems doing the automation on both sides. Time for something different.

WiFi Tethering

So this may have seemed like the obvious way to go, but bluetooth tethering has at least one major benefit over WiFi tethering: My phone can remain on WiFi (not cellular data) when bluetooth tethering. When WiFi tethering, my WiFi on phone is disabled. However, this wouldn’t really be a huge issue in the car since I’ll be on mobile data anyway.

Right. Okay, so how does THIS approach work? Basically the same idea:

  • My Nexus 7 and my phone are always paired via bluetooth
  • When my phone is within range to pair with the headunit, I can trigger a profile in Tasker on my phone
  • The Tasker profile can turn on my WiFi tether option on my phone
  • My Nexus 7 should pick up the new WiFi network and have internet access!

… And since I learned some things from my time with the bluetooth tethering, I already knew the first couple of steps were out of the question. Again, the manual toggle for now and potential NFC tag approach could be used later.

What did I have to do on the Tablet to make this all work magically? Nothing. It actually picks up the new network automatically and connects to it. Any catches on the phone side? Just one, it seems, and it’s minor. I need to press another “Activate Hotspot” button after enabling the hotspot. I might  dig a bit deeper into this using Tasker, but otherwise, it’s only one more button press.

In Summary…

Looks like I’ll be using WiFi tethering between my phone and my Nexus 7 headunit. WiFi tethering seems like the path of least resistance for me to get internet access on my headunit. Having access to the Internet will make my headunit experience that much better, and will simplify a lot of the custom stuff I was trying to make with Tasker+AutoVoice. I’ll now be able to do a bit of experimenting with NFC tags and spend time with Tasker+AutoVoice doing more advanced commands not supported by Google Now.

Sounds way better to me 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *