Hallo.
Ich habe einen Flow, der es mir ermöglichen soll, mein Smartphone (Android 8.0) mit meinem Pioneer Radio im Auto zu connecten und bei erfolgreicher Verbindung, soll Spotify starten.
Das klappt manchmal sehr gut. Aber manchmal baut er auch keine Verbindung auf. So dass Automagic den Flow abbrechen muss und mir einen Fehler anzeigt. Danach muss ich das Smartphone erst wieder komplett neu mit dem Radio koppeln um Medien wiederzugeben.
Das Radio benutzt 2 Bluetooth Profile. Eines für die Freisprechfunktion (Headset) und eines für Medien (Advanced Audio Disitribution).
Beim Booten des Radios dauert es eine weile bis Bluetooth bereit ist. Dabei ist das Profil für das Freisprechen schneller verfügbar als das für die Medien.
Wenn der Trigger nun also Bluetooth am Smartphone aktiviert, dann connected sich erstmal das Headset-Profil. Auch dann wenn ich eigentlich definiert hab, dass sich das Medien-Profil verbinden soll. Das wäre nicht weiter tragisch. Aber dann soll sich das Medien-Profil verbinden. Hier bricht der Flow aber oft (nicht immer) mit einem Fehler ab. Hier die letzten Zeilen aus dem Log:
15.08.2018 10:20:07.763 [Bluetooth Musik an Pioneer Kopie] Start executing action 'Bluetooth Gerät verbinden/trennen: Verbinden Advanced Audio Distribution PIONEER NAVI'
15.08.2018 10:20:07.855 [Bluetooth Musik an Pioneer Kopie] Start executing action 'Bluetooth Gerät verbinden/trennen: Verbinden Headset PIONEER NAVI'
15.08.2018 10:20:08.210 [Bluetooth Musik an Pioneer Kopie] Action 'Bluetooth Gerät verbinden/trennen: Verbinden Advanced Audio Distribution PIONEER NAVI' Could not connect the bluetooth device
15.08.2018 10:20:08.219 [Bluetooth Musik an Pioneer Kopie] End executing action 'Bluetooth Gerät verbinden/trennen: Verbinden Advanced Audio Distribution PIONEER NAVI' and exception Could not connect the bluetooth device
15.08.2018 10:20:08.270 [Bluetooth Musik an Pioneer Kopie] Action 'Bluetooth Gerät verbinden/trennen: Verbinden Headset PIONEER NAVI' Successfully connected to the bluetooth device
15.08.2018 10:20:08.274 [Bluetooth Musik an Pioneer Kopie] End executing action 'Bluetooth Gerät verbinden/trennen: Verbinden Headset PIONEER NAVI'
15.08.2018 10:20:08.291 [Bluetooth Musik an Pioneer Kopie] Flow ends execution due to errors
15.08.2018 10:20:08.291 [Bluetooth Musik an Pioneer Kopie] Error:
ch.gridvision.ppam.androidautomagiclib.util.m: Could not connect the bluetooth device
at ch.gridvision.ppam.androidautomagic.model.a.p$1$1.run(SourceFile:184)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6938)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Ich hab schon verschiedene Variationen beim Verbinden der einzelnen Profile versucht. Das Ergebnis bleibt gleich. Manchmal kann es Radio-seitig von Nöten sein, dass Medien Profil erstmal über Tastendruck zu aktivieren. Das heisst, wenn es denn nach dem Booten mal verfügbar ist. Aber auch dann kann es zu besagtem Fehler kommen.
Derzeit ist der Flow so definiert, dass er die Verbindung zum Medienprofil so lange wiederholen soll, bis sie hergestellt wurde. Das funktionierte auch tatsächlich beim ersten Versuch. Beim zweiten dann aber wieder der oben genannte Fehler. Ich verzweifle langsam.
Weiß jemand Rat?
Hier nochmal der Flow:
Bluetooth (AAD) konnte nicht verbunden werden
Moderator: Martin
Re: Bluetooth (AAD) konnte nicht verbunden werden
Hi,
Du verwendest im Flow zwei Actions 'Bluetooth Gerät verbinden', welche parallel ausgeführt werden. Ich vermute, dass dies zu Problemen führen könnte. Versuche die beiden Actions nacheinander auszuführen und zu prüfen, ob es dann zuverlässiger funktioniert.
Leider bietet Google keine offizielle API für Apps wie Automagic an, um BT Geräte zu verbinden, deshalb wird eine inoffizielle API verwendet, welche nicht auf allen Geräten gleich gut funktioniert. Abgesehen davon, ist BT Support von Android grundsätzlich nicht all zu stabil. Deshalb kann es manchmal nötig sein, mit verschiedenen Pausen im Flow zu experimentieren.
Freundliche Grüsse
Martin
Du verwendest im Flow zwei Actions 'Bluetooth Gerät verbinden', welche parallel ausgeführt werden. Ich vermute, dass dies zu Problemen führen könnte. Versuche die beiden Actions nacheinander auszuführen und zu prüfen, ob es dann zuverlässiger funktioniert.
Leider bietet Google keine offizielle API für Apps wie Automagic an, um BT Geräte zu verbinden, deshalb wird eine inoffizielle API verwendet, welche nicht auf allen Geräten gleich gut funktioniert. Abgesehen davon, ist BT Support von Android grundsätzlich nicht all zu stabil. Deshalb kann es manchmal nötig sein, mit verschiedenen Pausen im Flow zu experimentieren.
Freundliche Grüsse
Martin
Re: Bluetooth (AAD) konnte nicht verbunden werden
Hi Martin,
danke für deine Antwort. Ich konnte das Problem lösen. Ich habe mal die Zeit gemessen, wie lange Bluetooth vom Zeitpunkt des Bootens, bis zum verbinden braucht. Dementsprechend habe ich die Pausen auf insgesamt 40s angepasst. Danach erhielt ich aber immer noch manchmal den Fehler. Mir fiel dann aber auf, dass es scheinbar reicht das Headset Profil zu verbinden, da das unabhängig von allen Einstellungen immer als erstes verbunden wurde. Das Medien Profil verband sich dann wenig später Automatisch.
Das Problem war also, dass das Medien Profil versuchte eine Verbindung zum Radio zu bekommen. Dies gelang aber immer nur recht willkürlich. Und wenn keine Verbindung zustande kam, wusste Automagic bzw. Android nicht, was es in diesem Fall zu tun hat und verlor sich in einer Art Sackgasse. Das erzeugte dann besagten Fehler. Und zwar noch bevor Automagic in der Lage war, die "Nein-Bedingung" zu erfüllen.
Nun sieht das ganze so aus und funktioniert Tadellos:
Vielleicht hilft es ja anderen, mit dem gleichen Problem.
Beste Grüße und Danke für die Hilfe.
Doosta
danke für deine Antwort. Ich konnte das Problem lösen. Ich habe mal die Zeit gemessen, wie lange Bluetooth vom Zeitpunkt des Bootens, bis zum verbinden braucht. Dementsprechend habe ich die Pausen auf insgesamt 40s angepasst. Danach erhielt ich aber immer noch manchmal den Fehler. Mir fiel dann aber auf, dass es scheinbar reicht das Headset Profil zu verbinden, da das unabhängig von allen Einstellungen immer als erstes verbunden wurde. Das Medien Profil verband sich dann wenig später Automatisch.
Das Problem war also, dass das Medien Profil versuchte eine Verbindung zum Radio zu bekommen. Dies gelang aber immer nur recht willkürlich. Und wenn keine Verbindung zustande kam, wusste Automagic bzw. Android nicht, was es in diesem Fall zu tun hat und verlor sich in einer Art Sackgasse. Das erzeugte dann besagten Fehler. Und zwar noch bevor Automagic in der Lage war, die "Nein-Bedingung" zu erfüllen.
Nun sieht das ganze so aus und funktioniert Tadellos:
Vielleicht hilft es ja anderen, mit dem gleichen Problem.
Beste Grüße und Danke für die Hilfe.
Doosta