Chciałbym mieć monitor swojej aplikacji, gdy telefon zostanie zablokowany i odblokowany, a także gdy stanie się pusty (po dłuższej nieaktywności), wszystko to, gdy moja aplikacja nie jest skupiona, ale działa w tle.Jak słuchać zdarzenia telefonu blokującego/odblokowującego, gdy aplikacja działa w tle?
mogę otrzymać zablokować/odblokować/pusty wydarzenia z łatwością, podczas gdy aplikacja koncentruje się:
-(void) startListeningForPhoneLockEvent
{
NSLog(@"Start listening to lock/unlock and screen-goes-black events.");
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(),
(void*)self,
lockStateChanged,
CFSTR("com.apple.springboard.lockstate"),
NULL,
CFNotificationSuspensionBehaviorDeliverImmediately);
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(),
(void*)self,
hasBlankedScreen,
CFSTR("com.apple.springboard.hasBlankedScreen"),
NULL,
CFNotificationSuspensionBehaviorDeliverImmediately);
}
i oddzwanianie funkcje:
static void lockStateChanged(CFNotificationCenterRef center, void*observer, CFStringRef name, const void *object, CFDictionaryRef userInfo)
{
NSLog(@"Lock event received!");
}
static void hasBlankedScreen(CFNotificationCenterRef center, void*observer, CFStringRef name, const void *object, CFDictionaryRef userInfo)
{
NSLog(@"Blanked screen event received!");
}
mam włączony tryb tła:
- Pobieranie w tle.
Jednak gdy aplikacja przejdzie do tła, nie otrzyma zdarzeń blokowania/odblokowania/pustego ekranu.
Próbowałem już z innymi trybami tła, takimi jak odtwarzanie dźwięku, aktualizacje lokalizacji itp., Ale aplikacja nadal nie odbiera zdarzeń blokowania/odblokowania/pustego ekranu w tle.
Nie jestem pewien, czy jest to rzeczywiście możliwe, czy też robię coś nie tak.
Testuję to na prawdziwym urządzeniu, które jest aktualizowane do iOS9, przy użyciu najnowszego XCode z iOS9 SDK.
Nie miałbym nic przeciwko rozwiązaniu w Swift. –
Włączenie trybu tła w aplikacji nie pomaga, aplikacja powinna działać w tle. Czy możesz potwierdzić, że aplikacja działa w tle po zablokowaniu/odblokowaniu telefonu? – user3334059
@SumantHanumante, czy są jakieś ograniczenia ze strony Apple w czasie pracy w tle, słuchania blokady, odblokowywania wydarzeń? –