text: Bluetooth-Service verliert Verbindung wenn Screen aus | NextPit Forum
  Bluetooth-Service verliert Verbindung wenn Screen aus
  03.01.2016, 20:13:36 via Website
  03.01.2016 20:13:36 via Website
  Ich habe momentan ein kleines Problem bei einer App:
  Diese App startet einen Service, der immer im Hintergrund läuft. Der Service stellt eine Bluetooth-Verbindung mit einem Arduino her und schickt beim bekommen einer Pushbenachrichtigung Daten an den Arduino.
  Wenn der Bildschirm ausgeht verliert das Handy die Verbindung mit dem Arduino (daran erkenntlich, dass das BT-Modul am Arduino blinkt). Wenn jetzt bei ausgeschaltetem Screen Daten gesendet werden sollen, kommen diese natürlich nicht an.
  Deshalb wollte ich über "BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)" abfragen, wenn die Verbindung verloren geht und sie ggf. wiederherstellen. Aber dies wird offensichtlich erst gecallt, NACHDEM ich den Bildschirm wieder angemacht habe.
  ist es normal, dass das Disconnecten erst nach dem Einschalten des Screens passiert?
  Kann ich irgendwie anders ermitteln, ob die Verbindung noch besteht?
  Ich hatte mich auch überlegt, vom Arduino etwas an die App antworten zu lassen, allerdings ist das Empfangen der BT-Nachrichten am Handy ein bisschen aufwendiger und ich habe es beim ersten kurzen Versuch leider nicht direkt hinbekommen.
  05.01.2016, 14:36:29 via Website
  05.01.2016 14:36:29 via Website
  Das Problem liegt, denke ich, nicht daran, dass die Bluetooth-Verbindung disconnected wird, wenn du den Bildschirm aus machst.
  Wahrscheinlich läuft deine komplette App im Hintergrund nicht weiter, daher auch wird BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)auch erst aufgerufen, wenn der Bildschirm wieder an ist.
  Eine konkrete Lösung habe ich zwar auch nicht, aber vielleicht hilft dir das ja.
  05.01.2016, 14:43:28 via App
  05.01.2016 14:43:28 via App
  Läuft der Service als BackgroundService?
  06.01.2016, 15:07:42 via Website
  06.01.2016 15:07:42 via Website
  Der Service läuft als Intent-Service (das ist doch im ein BackgroundService, oder?).
  Es kann sein, dass mein Service im Hintergrund nicht mehr lief, weiß allerdings nicht, warum das so ist..
  Interessanterweise habe ich das gleiche heute noch einmal getestet und selbst 2 Minuten nach dem Ausschalten des Bildschirms bestand die Bluetooth-Verbindung noch (der Service lief also noch). Ich verstehe nicht ganz, wonach Android entscheidet, ob der Service aktiv bleibt oder nicht.. Am Code habe ich nämlich gar nichts verändert.