2012-11-01 11 views

risposta

24

Che ne dici di questo.

UIDeviceBatteryState deviceBatteryState = [UIDevice currentDevice].batteryState; 
if (deviceBatteryState == UIDeviceBatteryStateCharging || deviceBatteryState == UIDeviceBatteryStateFull) { 
    // It is charging 
} 

Dal apple documentation,

UIDeviceBatteryState: Lo stato di carica della batteria del dispositivo.

typedef enum { 
    UIDeviceBatteryStateUnknown, 
    UIDeviceBatteryStateUnplugged, 
    UIDeviceBatteryStateCharging, 
    UIDeviceBatteryStateFull, 
} UIDeviceBatteryState; 

UIDeviceBatteryStateUnknown: Lo stato della batteria del dispositivo non può essere determinato.

UIDeviceBatteryStateUnplugged: Il dispositivo non è collegato all'alimentazione; la batteria sta perdendo potenza.

UIDeviceBatteryStateCharging: Il dispositivo è collegato all'alimentazione e la batteria è inferiore al 100% di carica.

UIDeviceBatteryStateFull: Il dispositivo è collegato all'alimentazione e la batteria è carica al 100%.


Aggiornamento:

Proprio per rispondere completamente alla tua domanda. Ecco come rilevare quando un caricabatterie è collegato. Esiste una proprietà denominata batteryMonitoringEnabled.

batteryMonitoringEnabled: Un valore booleano che indica se il monitoraggio della batteria è abilitato (YES) o non (NO).

Abilita il monitoraggio della batteria se la tua app deve essere informata delle modifiche allo stato della batteria, o se si desidera controllare il livello di carica della batteria.

Il valore predefinito di questa proprietà è NO, che:

  • Disabilita l'invio delle notifiche di batteria relative
  • Disabilita la capacità di leggere il livello di carica della batteria e lo stato della batteria

In questo modo verranno inviate le notifiche UIDeviceBatteryLevelDidChangeNotification e UIDeviceBatteryStateDidChangeNotification quando il livello della batteria cambia GES. È possibile utilizzare UIDeviceBatteryStateDidChangeNotification per rilevare quando il caricabatterie è collegato.

+3

Probabilmente si desidera aggiornare tale condizione a 'if (deviceBatteryState == UIDeviceBatteryStateCharging || deviceBatteryState == UIDeviceBatteryStateFull)', poiché entrambi questi stati significano il dispositivo è collegato all'alimentazione. –

+0

Grazie. Aggiunto anche questo. – iDev

+0

@quegal, grazie per la correzione, ma questa era la dicitura esatta della documentazione Apple che ho citato ("la batteria si sta scaricando").:) – iDev

Problemi correlati