Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=9a6ed98d-22c3-4d48-b1ee-9df4c2345350

Cómo detectar el modo de bajo consumo en una app para iPhone

Uno de los mayores problemas de los usuarios móviles en la actualidad es la duración de la batería. Si eres un usuario muy activo del móvil (y hoy en día casi todos lo somos), es muy fácil que a partir de cierta hora del día vayamos ya muy "pillados" con la batería que nos queda. Es por esto que los sistemas operativos móviles modernos incluyen un modo especial de ahorro de energía (cada uno le llama de una forma diferente) que nos permite limitar el consumo de energía y mantenerlo al mínimo cuando vamos muy apurados.

En el caso de los iPhone, con iOS 9 se introdujo un nuevo modo llamado "de bajo consumo" que se intenta activar automáticamente cuando la carga de tu batería llega al 20% (como en los Windows Phone, que lo tenían antes). También se puede activar manualmente yendo a los ajustes de batería del teléfono:

ModoBajoConsumo-iPhone

Al hacerlo, el icono de la batería cambia a color amarillo, el brillo de la pantalla disminuye de intensidad y se apaga antes, y se suspenden muchas tareas en segundo plano para ahorrar batería, como por ejemplo la descarga de correo, el refresco de aplicaciones en segundo plano o el poder decir "Oye Siri" para activar el asistente del teléfono.

Cuando un usuario tiene el teléfono en este modo y está usando nuestra aplicación, deberíamos comportarnos lo mejor posible para tratar de ahorrar energía: verificar la posición menos a menudo (el uso del GPS acaba con la batería), disminuir procesos que usen mucho procesador (como animaciones o efectos físicos), usar menos la red y enviar o traer solamente los datos estrictamente necesarios... Otra gente, como los "aguilillas" de Über, lo usan para ganar más dinero a costa de tu necesidad. Oye, cada uno tiene su ética :-P

El caso es que, sea por un motivo u otro, puede resultar muy interesante saber cómo averiguar si el usuario actual está o no en modo de ahorro de energía, y poder responder ante los cambios en el mismo.

En la API de iOS 9 o posterior existe una función precisamente para esto dentro de la clase NSProcessinfo.

En Swift podemos averiguarlo así:

if NSProcessInfo.processInfo().lowPowerModeEnabled {
   //Actuar en consecuencia...
}

Y en Objective-C el equivalente sería:

if ([[NSProcessInfo processInfo] isLowPowerModeEnabled]) {
   //Actuar en consecuencia...
}

Si no quieres tener que estar comprobando este estado periódicamente también puedes suscribirte a la notificación del sistema NSProcessInfoPowerStateDidChangeNotification. Gracias a ella podrás enterarte de cuando cambia el modo de energía y actuar en consecuencia.

OJO porque esto no funcionará en versiones de iOS anteriores a la 9, por lo que tendrás que comprobar la disponibilidad de este método si tu app va a funcionar también en versiones antiguas del sistema operativo. Ah, y en iPad no existe este modo energético y, aunque la función trabaja sin problemas, siempre devuelve falso.

Fecha de publicación:
campusMVP campusMVP es la mejor forma de aprender a programar online y en español. En nuestros cursos solamente encontrarás contenidos propios de alta calidad (teoría+vídeos+prácticas) creados y tutelados por los principales expertos del sector. Nosotros vamos mucho más allá de una simple colección de vídeos colgados en Internet porque nuestro principal objetivo es que tú aprendas. Ver todos los posts de campusMVP
Archivado en: Desarrollo móvil

¿Te vas a perder los mejores trucos de programación?

Únete a miles de desarrolladores que ya reciben cada mes nuestro boletí­n por email. No te pierdas los mejores trucos, noticias y frikadas.

Enviamos poco, pero bueno. Palabra de desarrollador.

Suscríbete aquí­

Sí­guenos también en:

Telegram LinkedIn YouTube
La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.