2014-02-25 9 views
5

Ich bemerke, GCKChannel wird getrennt, nachdem meine App Hintergrund (oder Bildschirm gesperrt), eingeben und wird nach meiner App wieder in den Vordergrund verbunden werden.GCKChannel getrennt, während iOS-Sender Hintergrund eingeben

Im Folgenden ist der Aufruf-Stack für Kanal didDisconnect, es sieht aus wie GCKCastSocket registrierte Benachrichtigung UIApplicationDidEnterBackgroundNotification.

#0 0x001cac58 in -[MyChannel didDisconnect] 
#1 0x001feb72 in -[GCKDeviceManager castSocket:didDisconnectWithError:] at GCKDeviceManager.m:692 
#2 0x001f8902 in -[GCKCastSocket doTeardownWithError:] at GCKCastSocket.m:187 
#3 0x001f8508 in -[GCKCastSocket disconnect] at GCKCastSocket.m:133 
#4 0x30b35e70 in __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__() 

Ich versuche, die Design-Checkliste zu folgen: https://developers.google.com/cast/docs/design_checklist#sender-control-lockscreen

und diese verursachen meine App nicht Update von meinem Empfänger App bekommt, wenn Benutzer ihre iDevice gesperrt.

Obwohl es nicht für iOS erforderlich ist, Ich denke, es ist eine wichtige Usability-Funktion an meinen Receiver App zu steuern, ohne das Gerät zu entsperren ...

Meine Sender App Haken Fernbedienung Ereignisse, drücken Sie Informationen zu MPNowPlayingInfoCenter und Überwachen Sie auch das Systemvolumen geändert Ereignis, um die beste Benutzererfahrung zu erstellen.

wenn ich nicht halten kann Empfangen/Senden Nachricht von/app im Hintergrund zum Empfänger, die Kontrollen in dem Sperrbildschirm ist nutzlos und wird out-of-date Informationen, ich die meisten Nutzer glauben, wird nicht Halten Sie den Bildschirm des Geräts geöffnet, wenn Sie den Fernseher hören/sehen (Chromecast) ...

Gibt es eine Problemumgehung?

+0

Haben Sie irgendeine Lösung gefunden, bekomme ich genau den gleichen Fehler? – hariszaman

Antwort

2

Ja, das ist richtig. Bei den App-Hintergründen werden die Kanäle implizit getrennt. Wenn Sie jedoch die Sperrbildschirmsteuerelemente verwalten, sollten Sie dieses Verhalten unter Verwendung des ignoreAppStateNotifications auf dem GCKDeviceManagerinitWithDevice:clientPackageName:ignoreAppStateNotifications Initialisierer deaktivieren können.

Es liegt in Ihrer Verantwortung, Verbindungsunterbrechungen zu verwalten, wenn und wann Sie Hintergrundinformationen benötigen - weitere Informationen finden Sie in den Kommentaren in der Dokumentation.

+0

Haben Sie versucht, Sperrbildschirmsteuerelemente mithilfe des Flags "ignoreAppStateNotifications''" zu konfigurieren? Es funktioniert nicht, auch nachdem ich dieses Flag auf YES gesetzt habe. Aber das könnte ein Problem in meinem Code auch sein –

+0

Das gleiche hier, dass das Problem nicht lösen. Meine Empfänger-App hat dieses Protokoll erhalten, wenn die iOS App unter den Hintergrund geht: '[Mi 11 Jan 2017 11:48:11 GMT + 0100 (CET)] Sender nicht verbunden: 258cf69b-7b5a-537f-6a58-661fe6aece89.146: 8E4136D0 -CA60-4A53-8518-8A03BB1BFF98 Grund: unbekannter Benutzeragent: iOS CastSDK, 3.3.0, iPhone8,1, iOS, 10.2' '[Mi Jan 11 2017 11:48:11 GMT + 0100 (CET)] Disconnected Meister' –