¿Existe una forma (legal) de capturar la pantalla ENTERA en iOS?

He intentado varias técnicas para capturar una captura de pantalla de una aplicación desde esa aplicación. Ninguna de las técnicas parece capturar la barra de estado; termina siendo negra.

Al parecer, alguna vez hubo una forma de hacer esto, pero esa interfaz es interna y Apple no le permitirá usarla.

¿Algunas ideas?

Nota: Este es un bash para resolver este problema , donde necesito determinar si el modo avión está activado o desactivado (y no, simplemente saber si la networking es accesible no es suficiente).

Sin embargo, parece que esta pregunta es de interés más general y es distinta de esa pregunta.

Su problema real, determinar si una interfaz de networking está activa, se puede resolver con funciones de networking BSD. MIRAD.

 #include <sys/socket.h> #include <ifaddrs.h> #include <net/if.h> BOOL IsNICTurnedOn(const char *nicName) { BOOL result = NO; struct ifaddrs *addrs = NULL; if (0 == getifaddrs(&addrs)) { for (struct ifaddrs *addr = addrs; addr != NULL; addr = addr->ifa_next) { if (0 == strcmp(addr->ifa_name, nicName)) { result = (0 != (addr->ifa_flags & (IFF_UP | IFF_RUNNING))); break; } } freeifaddrs(addrs); } return result; } 

Para usar esta function:

 BOOL isWWANEnabled = IsNICTurnedOn("pdp_ip0"); BOOL isWiFiEnabled = IsNICTurnedOn("en0"); 

En este punto, parece claro que no hay una forma simple de detectar si el modo avión está habilitado. Aunque probablemente pueda inferirlo al observar información de stack de networking de bajo nivel o píxeles de barra de estado de raspado, cualquiera de los methods dependería de un comportamiento no documentado. Es muy posible que en una versión futura de iOS o un futuro dispositivo iOS, el comportamiento cambie y su código genere un falso positivo o un falso negativo.

(Sin mencionar que, en futuros dispositivos, la interferencia puede incluso no estar allí).

Si estuviera en tu lugar, yo:

  1. Presente un error para que Apple sepa que desea esta function.

  2. Trabaja el aviso en la aplicación, independientemente de si el Modo Avión está habilitado. Sí, podría ser molesto para el usuario si está habilitado, pero el daño general es mínimo. Probablemente haría de esta una alerta que aparece solo una vez (almacenar una key en NSUserDefaults para indicar si ya se ha mostrado).

  3. Si desea get supereficacia, analice el audio grabado y, si se detecta el zumbido, recuerde nuevamente al usuario que habilite el Modo avión mientras graba. Podría hacer esto en time real o después de que se haya grabado el clip, lo que sea más lógico para su aplicación.

Como solución alternativa, tal vez podría detectar el tipo de connection, similar a: https://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html . Con un control adicional para el tipo de dispositivo, puede advertir al usuario solo en el caso en que necesite actuar.

Tipo de enfoque diferente, pero también puede vincular a páginas dentro de la aplicación Configuración. Tal vez podría vincular a la página principal y decirle al usuario los cambios que necesita.

Parece que no hay forma de hacer esto.