After updating to Version 6.0 I found out that now I’m unable to use Android Auto with my car radio. The Android Auto app itself still works and I can get int its settings, however I cannot connect it to my car radio. My phone is a Fairphone 4.
Android Auto can detect that its connected over Bluetooth to a car radio that it can talk to. However pressing that ones name does nothing. Any attempts to connect fail without any message or warning.
I did some looking with Logcat (using LogFox) and captured this crash:
FATAL EXCEPTION: main
Process: com.google.android.projection.gearhead:car, PID: 13111
java.lang.RuntimeException: Unable to start service com.google.android.apps.auto.wireless.setup.service.impl.WirelessSetupSharedService@33f17bb with Intent { act=android.bluetooth.device.action.ACL_CONNECTED cmp=com.google.android.projection.gearhead/com.google.android.apps.auto.wireless.setup.service.impl.WirelessSetupSharedService (has extras) }: java.lang.SecurityException: Starting FGS with type location callerApp=ProcessRecord{25587d6 13111:com.google.android.projection.gearhead:car/u0a412} targetSDK=35 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_LOCATION] any of the permissions allOf=false [android.permission.ACCESS_COARSE_LOCATION, android.permission.ACCESS_FINE_LOCATION] and the app must be in the eligible state/exemptions to access the foreground only permission
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:5246)
at android.app.ActivityThread.-$$Nest$mhandleServiceArgs(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2546)
at android.os.Handler.dispatchMessage(Handler.java:109)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.app.ActivityThread.main(ActivityThread.java:8787)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:591)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:871)
Caused by: java.lang.SecurityException: Starting FGS with type location callerApp=ProcessRecord{25587d6 13111:com.google.android.projection.gearhead:car/u0a412} targetSDK=35 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_LOCATION] any of the permissions allOf=false [android.permission.ACCESS_COARSE_LOCATION, android.permission.ACCESS_FINE_LOCATION] and the app must be in the eligible state/exemptions to access the foreground only permission
at android.os.Parcel.createExceptionOrNull(Parcel.java:3231)
at android.os.Parcel.createException(Parcel.java:3215)
at android.os.Parcel.readException(Parcel.java:3198)
at android.os.Parcel.readException(Parcel.java:3140)
at android.app.IActivityManager$Stub$Proxy.setServiceForeground(IActivityManager.java:7209)
at android.app.Service.startForeground(Service.java:863)
at com.google.android.apps.auto.wireless.setup.service.impl.WirelessSetupSharedService.h(SourceFile:93)
at com.google.android.apps.auto.wireless.setup.service.impl.WirelessSetupSharedService.g(SourceFile:119)
at com.google.android.apps.auto.wireless.setup.service.impl.WirelessSetupSharedService.onStartCommand(SourceFile:139)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:5228)
... 9 more
The app has all permissions I can give it via settings.
[…] and the app must be in the eligible state/exemptions to access the foreground only permission
Just a gut feeling but could this be the problem
Maybe an Android 15 permission (API) change?
If needed I could provide the longer logcat capture I did as well.