The problem is that android auto is restricted to apps installed from the play store.
The F-Droid Version supports Android Auto, but it’s blocked by Google.
I managed to enable it by spoofing the installer-package during installation.
For me, the navigation is near unusable. Location tends to lag behind by a few seconds when running on Android Auto. On my phone it’s fine.
I built a custom app to do it since I couldn’t manage to fire the relevant intents from an adb shell without root.
I lifted the code from AAAD
Specifically the InstallAPK method in MainActivity.java
Intent intent; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { intent = new Intent(Intent.ACTION_INSTALL_PACKAGE); intent.setData(getUri(file)); intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_ACTIVITY_NEW_TASK); } else { intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndTypeAndNormalize(Uri.fromFile(file), "application/vnd.android.package-archive"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); } intent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true); intent.putExtra(Intent.EXTRA_INSTALLER_PACKAGE_NAME, "com.android.vending"); getApplicationContext().startActivity(intent); }
Basically you construct an Intent
ACTION_INSTALL_PACKAGE
with data pointing to the APK file and the extrasEXTRA_NOT_UNKNOWN_SOURCE=true
andEXTRA_INSTALLER_PACKAGE_NAME="com.android.vending"
which tells the installer that this APK is not sideloaded and it’s the play store asking to install it.You might still need to enable unknown sources in Android Auto developer settings (separate from phone developer settings).
If I remember, I’ll try to pull the code for my app from my PC and post it.