Music with Android Auto

Android Auto is still not a feature that is available in most car entertainment systems. Even those with this feature in their car might not have used it extensively. It does a good way of utilizing your phone and display useful apps in the car entertainment system. Best of all is it is integrated with google assistant using which you can issue handsfree commands to your Car head unit. Cool isn’t it.

I have been using Android Auto extensively for past 1 year. One of my biggest gripes on Android auto being not able to identify good audio apps that support Android Auto. Android Auto app lists very few music players through the app store, and most of the apps listed there are either music streaming apps or podcast apps. After a brief search found out this reddit page. So here a short review of all the music players I have tried and the final verdict one I love using.

Play music is one default app that will be installed by default on your phone when you enable android auto. Here most of the importance is given to streaming content than the music available in the phone. You will have to create playlists to play music from the phone. Play music has an added advantage over other players here. It supports searching and playing your audio library through voice command. Simply press command button and say “Play <insert your song name> song” it would play from your library if available  else from online.

JetAudio

A well known name in audio players. A good enough player for android auto but not for personal use, I found the ads too distracting in the free version.

Rocket Player

A good android auto music player which I have used for sometime. But the controls in in the android auto seemed very minimal, especially in the sidebar. Other than that this is a good player.

MD Player

I used this player quite extensively, has a good play all music mode. But the shuffle is not that great, always tend to repeat the songs rather than finding fresh one from local library. Side menu can have better controls.

Cloud player

For a moment I thought I found the perfect music player for my needs. But the interface was bit slow. Has a good shuffle mode that helps me during travel. Worst thing about this player is, it starts on its own at random times. Uninstalled after few days.

AnyAutoAudio

This should have been default option in Android auto. This enables playing audio through any of your favourite music player and connect with android auto. Has its own issues. The audio output was too low to my liking. Music browsing was almost not there, you have to use your phone to scroll. This is not available in play store though.

Musicolet

Surprise player which satisfies all my requirements. Has a good shuffle mode, can hold multiple lists, surprisingly lightweight and best of all no Ads. This is my goto player for android auto nowdays.

I have my own gripes with android auto in general. I has very hard to browse interface, which requires browsing through side menu. Searching this way is pain. You need good internet connectivity to use google assistant efficiently. Some time I tend to fall back to good old bluetooth when not using assistant features or the google map. All in all I still like Android auto for the handsfree experience and google maps handsdown.

How to Install Teamviwer and Tab based terminal in Ubuntu

How to install teamviewer in Ubuntu

  • Download the official image from http://www.teamviewer.com/en/download/linux.aspx (always get 32bit)
  • Open a console
  • Run command cd ~/Downloads/
  • Run command sudo dpkg -i teamviewer_linux.deb
  • Run command sudo apt-get -f install to install any missing dependencies
  • Follow whatever steps it needs you to take.

Tab Based terminal in ubuntu

  • If you want to do it from the command then install xdotool.
  • sudo apt-get install xdotool
  • then type in the terminal as
  • xdotool key ctrl+shift+t
  • That will open the new tab in the terminal.
  • Note: type xdotool command as it is.

Preparing elementary OS for android development

After installing elementary OS for basic needs, next thing for me was to set it up for developing android applications. Most of these instructions were scattered throughout internet. Decided to just group them all here. I did face some issues with 64 bit edition , I used the apt-get autoremove while trying out few applications, which messed up the entire system, added to that I was having some trouble with wifi. So I decided to stick with 32-bit edition. I can say that its more of a personal and not-knowing-how-to-fix decision.

Install Unrar

Uncompressing rar files needs this. This comes as a separate install.

sudo apt-get install unrar

Installing Oracle Java 7

I used the ppa provided by WebUpd8 which can be found here. The same ppa can be used for installing jdk 6 and 8 as well.

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

Might have to accept licence agreement for installing.

Setting up Official ADT Bundle

Android development can be proceeded with either an existing eclipse, or with the ADT bundle available for download from official android developer page. I chose to create a folder apps in my home directory, where I unzipped the bundle.
Then I decided to create an entry into Application menu. This stackoverflow entry is what I was looking for. In short it involved creating a file eclipse.desktop at the location

~/.local/share/applications/

File contents

[Desktop Entry]
Type=Application
Name=Eclipse
Comment=Eclipse Integrated Development Environment
Icon=** something like /opt/eclipse/icon.xpm **
Exec= ** something like /opt/eclipse/eclipse **
Terminal=false
Categories=Development;IDE;Java;
StartupWMClass=Eclipse

Setting up Android Studio
Setting up android studio was straight forward. At the time of me installing the version was 0.5.4. Followed similar steps to install. Downloaded from the official location. Unzipped into my apps folder. Creating a shortcut was much simpler in android studio. Run android studio

/home/<user>/apps/android-studio/bin/studio.sh

In the start screen click on “Configure” which takes you to the configure panel then click on “Create Desktop Entry”. Or from tools menu click on “Create Desktop Entry..”.

Install genymotion

Genymotion is a android vm that runs on virtual box. So should install virtual box before installing genymotion. Download the deb file from https://www.virtualbox.org/wiki/Downloads . After installing virtual box, download genymotion. Genymotion comes as a .bin file. Move the genymotion*.bin into apps folder. Open up terminal with Atl+Shift+t.

cd  ~/apps
chmod +x genymotion*.bin
./genymotion*.bin

Setting up all the devices for development

While ubuntu doesn’t need device drivers for communication with adb, it does require some permissions to be specified. Quoting from this stackoverflow post,

$ adb devices
List of devices attached 
????????????    no permissions

Create a file named /tmp/android.rules with the following contents (hex vendor numbers were taken from the vendor list page):

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0e79", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="091e", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="24e3", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2116", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0482", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0409", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2080", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2257", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="10a9", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1d4d", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1f53", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04dd", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0930", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0666"

Run the following commands:

sudo cp /tmp/android.rules /etc/udev/rules.d/51-android.rules
sudo chmod 644   /etc/udev/rules.d/51-android.rules
sudo chown root. /etc/udev/rules.d/51-android.rules
sudo service udev restart
sudo killall adb

Disconnect the USB cable between the phone and the computer.

Reconnect the phone.

Run adb devices to confirm that now it has permission to access the phone.

Now we are up and ready with fresh install of elementary OS along with tools required for Android applications development.