¿Hay alguna manera de saber cuándo mi dispositivo (iPhone) está enchufado a la fuente de alimentación, como una computadora o sistemas de audio para automóvil con un puerto USB? Utilizo servicios de localización en mi aplicación y deseo cambiar al kCLLocationAccuracyBestForNavigation
automáticamente cuando el dispositivo está enchufado. Gracias ...¿Cómo saber cuándo el dispositivo iOS está enchufado?
Respuesta
Puede registrarse para recibir notificaciones cuando un accesorio se conecta o desconecta.
Ejemplo:
[[EAAccessoryManager sharedAccessoryManager] registerForLocalNotifications];
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[notificationCenter addObserver:self
selector:@selector(accessoryDidConnect:)
name:EAAccessoryDidConnectNotification
object:nil];
[notificationCenter addObserver:self
selector:@selector(accessoryDidDisconnect:)
name:EAAccessoryDidDisconnectNotification
object:nil];
Una vez que reciba esta notificación puede utilizar un bucle para pasar por cada accesorio como:
NSArray *accessories = [[EAAccessoryManager sharedAccessoryManager] connectedAccessories];
EAAccessory *accessory = nil;
for (EAAccessory *obj in accessories)
{
// See if you're interested in this particular accessory
}
En algún momento (dealloc tal vez) que va a querer anular el registro para estas notificaciones Esto se puede hacer como:
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[notificationCenter removeObserver:self
name:EAAccessoryDidDisconnectNotification
object:nil];
[notificationCenter removeObserver:self
name:EAAccessoryDidConnectNotification
object:nil];
[[EAAccessoryManager sharedAccessoryManager] unregisterForLocalNotifications];
Puede habilitar la supervisión de la batería a través de la UIDevice class y comprobar el estado de la batería para ver si se está cargando:
typedef enum {
UIDeviceBatteryStateUnknown,
UIDeviceBatteryStateUnplugged,
UIDeviceBatteryStateCharging,
UIDeviceBatteryStateFull,
} UIDeviceBatteryState;
que querrá comprobar la carga o Completo antes de permitir la mejor precisión de GPS.
Para comprobar el estado de la batería:
UIDeviceBatteryState batteryState = [[UIDevice currentDevice] batteryState];
para suscribirse a notificaciones sobre los cambios en el estado de la batería, por ejemplo, por haber recibido una llamada a su propio método de acción batteryStateChanged
:
- (void) setup {
[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
NSNotificationCenter * center= [NSNotificationCenter defaultCenter];
[center addObserver:self
selector:@selector(batteryStateChanged)
name:UIDeviceBatteryStateDidChangeNotification
object:nil];
}
Recuerde darse de baja cuando su objeto se desasigna:
- (void) dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
[[UIDevice currentDevice] setBatteryMonitoringEnabled:NO];
}
- 1. Detectando que el dispositivo está enchufado
- 2. Cómo saber si el dispositivo está durmiendo
- 3. ¿Cómo verifico si un dispositivo USB dado está enchufado?
- 4. Cómo verifico si el escáner está enchufado (C#, .NET TWAIN)
- 5. Cómo saber cuándo Windows está inactivo
- 6. Android - Cómo saber cuándo MediaPlayer está almacenando en el buffer
- 7. Java - ¿Cómo saber cuándo está esperando el hilo?
- 8. Cómo saber cuándo un usuario evalúa una aplicación/juego iOS
- 9. ¿Cómo saber a qué puerto está conectado un dispositivo USB?
- 10. ¿Cómo puedo detectar qué dispositivo iOS está usando mi usuario?
- 11. ¿Cómo puedo saber cuándo WindowsFormsHost está redimensionando en WPF?
- 12. C# - ¿Cómo saber cuándo Windows está "resuelto" después del inicio?
- 13. ¿Cómo verifico si un dispositivo está ejecutando iOS 6?
- 14. ¿Cómo saber cuándo termina el TTS?
- 15. ¿Cómo saber si el dispositivo Cocoa Touch puede hacer llamadas?
- 16. iOS - Cómo saber si la capacidad de transferencia de fotos de iCloud está habilitada
- 17. ¿Cómo saber cuándo se conecta un nuevo dispositivo de almacenamiento USB en Qt?
- 18. RS232 para dispositivo iOS
- 19. WCF: ¿Cómo saber cuándo termina una sesión?
- 20. cómo saber la densidad del dispositivo?
- 21. saber cuándo llamar persistir
- 22. Cuándo usar layoutSubview en iOS
- 23. iPhone etc: ¿cómo saber si el dispositivo tiene una cámara?
- 24. UIDocument openWithCompletionHandler no completar el dispositivo IOS
- 25. ¿Cómo saber cuándo se ha pausado el MPMoviePlayerController en iPhone?
- 26. ¿Cómo puedo saber en qué dispositivos/versiones de sistema operativo se está ejecutando mi aplicación iOS?
- 27. ¿Cómo saber cuándo Big O es logarítmico?
- 28. ¿Cómo puedo saber cuándo NSTextView pierde foco?
- 29. writeToFile cómo saber cuándo se completó
- 30. ¿Cómo detectar usando C# si un pendrive está enchufado a un puerto USB?
** Muchas gracias ** Voy a probar t este código ... – human4
@ human4 Siempre me complace ayudarlo. Si KVO en 'UETevice'' batteryState' funciona, entonces eso es lo que haría. – Sam
Esto ya no funciona. –