2009-07-27 8 views
7

Ho bisogno che la mia applicazione sia in esecuzione senza che l'iPhone vada a dormire. Ma mi piacerebbe spegnere lo schermo. Qualcosa di simile è fatto nell'applicazione Telefono, quando parli al telefono.Spegnimento schermo

Impedisco l'iPhone di andare a dormire nel modo seguente: [[Applicazione condivisa UIA setIdleTimerDisabled: YES];

Ma come posso spegnere lo schermo? E come posso tornare indietro, quando l'utente ha toccato lo schermo?

Grazie.

risposta

5

Aggiornamento: Questo metodo è stato deprecato. Vedi il commento di Timothée Boucher qui sotto.


È possibile spegnere lo schermo tramite il sensore di prossimità, ma non esiste un altro modo pubblico per attivare lo spegnimento dello schermo.

-[UIApplication setProximitySensingEnabled:(BOOL)] 
+2

Per chi legge questo, al momento del mio commento, il metodo è stato deprecato. Dalla documentazione di Apple: "Deprecato. Le proprietà' proximityMonitoringEnabled' e 'proximityState' della classe' UIDevice' sono le sostituzioni. " –

0

Non posso confermare che si tratti di una funzionalità pubblica, ma so che esiste un sensore di prossimità in grado di rilevare se il telefono è vicino al tuo viso o meno. Prova a scavare e capire se quel sensore è disponibile pubblicamente, e quindi quale funzione potrebbe spegnere lo schermo.

0

Non esiste un modo programmatico (pubblico) per attivare o disattivare lo schermo o persino per modificare la luminosità del display. Alcune app "simulano" un cambiamento di luminosità super-imponendo una vista nera trasparente sopra la tua vista e cambiando la sua opacità per dare l'impressione di un cambiamento di luminosità (la retroilluminazione rimarrà accesa, però, quindi non sarà mai sembra che lo schermo sia spento e non salvi alcuna batteria).

0

ya thair è il modo in cui è possibile utilizzare la funzione non documentata GSEventSetBacklightFactor (1); questo renderà lo schermo debole. se sostituisci 1 con 0 lo schermo sarà spento. quindi devi premere il tasto home.per utilizzare questo devi importare un framework di framework di grafica priate

+0

Non può essere attivato con "GSEventSetBacklightFactor (1);" su un dispositivo con framework 3.1.2. Anche il tasto home non aiuta, ma riavvia solo il dispositivo (Home + Sleep 10 secondi).Funziona su un simulatore. Il dispositivo è senza incrinature. – slatvick

+0

@slatvick - Vuoi dire 'non jailbroken', non' noncracked'. Spero non sia rotto. – Moshe

2

Bene, puoi disattivare completamente la luminosità. Non blocca lo schermo e il dispositivo continua a essere visualizzato ma nessuna retroilluminazione LCD lo rende quasi impossibile da vedere.

- (void) changeSystemBrightness: (NSString *) switchValue { 

if ([[UIScreen mainScreen] respondsToSelector:@selector(setBrightness:)]) { 
    if (switchValue) { 
     if ([switchValue isEqualToString:@"saveDefault"]) { 
      // 
      self.userBrightness = [UIScreen mainScreen].brightness; 
      //NSLog(@"User Brightness: %1.1f", userBrightness); 
     } else if ([switchValue isEqualToString:@"restoreDefault"]) { 
      [UIScreen mainScreen].brightness = self.userBrightness; 
      //NSLog(@"Restore Brightness: %1.1f", userBrightness); 
     } else if ([switchValue isEqualToString:@"min"]) { 
      //[UIScreen mainScreen].brightness = 0; 
     } else if ([switchValue isEqualToString:@"max"]) { 
      [UIScreen mainScreen].brightness = 1; 
     } else if ([switchValue isEqualToString:@"mid"]) { 
      [UIScreen mainScreen].brightness = 0.5; 
     } 
    } else { 
     [UIScreen mainScreen].brightness = self.userBrightness; 
     //NSLog(@"Restore Brightness: %1.1f", userBrightness); 
    } 
} 

}

Prima salvare il livello di luminosità del sistema dell'utente

[self changeSystemBrightness:@"saveDefault"]; 

Dopo di che si può semplicemente spegnere lo schermo:

[self changeSystemBrightness:@"min"]; 

ripristinare la luminosità:

[self changeSystemBrightness:@"restoreDefault"]; 

iOS ripristina la luminosità predefinita del sistema una volta che lo schermo è stato spento normalmente (blocco/sblocco), quindi è necessario rilevare e gestirlo.

Problemi correlati