2017-01-30 2 views
2

Wir haben eine Musik-App (MP3) in Xamarin entwickelt (Native Android App) mit MediaPlayer. Es wird eine Liste von Songs geben, die nacheinander abgespielt werden sollen. Nach ungefähr 10 Minuten stoppt der Spieler. Sobald das Telefon entsperrt ist, beginnt der Player mit der Wiedergabe des nächsten Titels. Scheint, dass der Nougat Doze irgendwie in den Player eingreift. Wenn ich die Akkuoptimierung für meine App manuell deaktiviere, besteht kein Problem.Xamarin MediaPlayer unterbrochen durch Android Doze Mode

Gibt es eine Lösung für dieses Problem, anstatt jeden Benutzer die Option "Batter Optimization" manuell ändern zu müssen. Ich frage mich, wie andere Programme wie Spotify Songs kontinuierlich ohne Einstellungsänderungen abspielen. Bitte helfen Sie!

Antwort

1

Jeder Prozess, der einen laufenden Vordergrunddienst enthält, wird für den Doze-Modus nicht berücksichtigt. Dies verwenden Apps wie Spotify und Google Play Music. Erwägen Sie, einen relevanten Vordergrunddienst zu erstellen - er wird auf dem Benachrichtigungsbildschirm angezeigt, während der Vordergrunddienst ausgeführt wird, sodass ein Dummy-Dienst angezeigt wird.

Eine andere Option ist, die REQUEST_IGNORE_BATTERY_OPTIMIZATIONS Erlaubnis anzufordern und dann eine ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS Absicht zu starten, die den Benutzer zum Batterieoptimierungsbildschirm für Ihre App führt. Dies ist zwar weniger als eine hervorragende Benutzererfahrung, erfordert jedoch nicht die Erstellung eines Vordergrunddienstes, den Sie möglicherweise nicht benötigen.