Vorrei avere il mio monitor dell'app quando il telefono è bloccato e sbloccato, così come quando si spegne (dopo una lunga inattività), tutto questo mentre la mia app non è a fuoco, ma in esecuzione in background.Come ascoltare l'evento di blocco/sblocco del telefono mentre l'applicazione è in esecuzione in background?
posso ricevere/sblocco/eventi vuoti di blocco con facilità, mentre app si concentra:
-(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);
}
E callback funzioni:
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!");
}
Io ho abilitato la modalità di sfondo:
- Recupero sfondo.
Tuttavia, una volta che l'app va in background, non riceve eventi di blocco/sblocco/schermo vuoto.
Ho provato con altre modalità di sfondo, come la riproduzione audio, gli aggiornamenti di posizione ecc. Ma l'app non sta ancora ricevendo eventi di blocco/sblocco/schermo vuoto quando è in background.
Non sono sicuro che sia effettivamente possibile, o se sto facendo qualcosa di sbagliato.
Lo sto testando su un dispositivo reale che viene aggiornato a iOS9, utilizzando l'ultimo XCode con iOS9 SDK.
Non mi dispiacerebbe nemmeno una soluzione in Swift. –
Non è utile avere la modalità background abilitata nell'applicazione, l'applicazione dovrebbe essere effettivamente in esecuzione in background. Puoi confermare che l'applicazione è effettivamente in esecuzione in background quando si blocca/sblocca il telefono? – user3334059
@SumantHanumante, ci sono restrizioni su Apple in esecuzione in background, ascolto di blocco, sblocco eventi? –