otro - desactivar iphone
Detecta el modo aviĆ³n en iOS (4)
¿Cómo puedo detectar si el teléfono está en modo avión? (No es suficiente para detectar que no hay conexión a Internet, tengo que ser capaz de distinguir estos 2 casos)
No podemos obtener esta información sin utilizar bibliotecas privadas. Aquí hay un código, pero no funcionará cuando la señal de la portadora no esté disponible.
UIApplication *app = [UIApplication sharedApplication];
NSArray *subviews = [[[app valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews];
NSString *dataNetworkItemView = nil;
for (id subview in subviews) {
if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarSignalStrengthItemView") class]]) {
dataNetworkItemView = subview;
break;
}
}
double signalStrength = [[dataNetworkItemView valueForKey:@"signalStrengthRaw"] intValue];
if (signalStrength > 0) {
NSLog(@"Airplane mode or NO signal");
}
else{
NSLog(@"signal available");
}
Para modificaciones / aplicaciones jailbroken:
@interface SBTelephonyManager : NSObject
+(id)sharedTelephonyManager;
-(BOOL)isInAirplaneMode;
@end
...
bool isInAirplaneMode = [[%c(SBTelephonyManager) sharedTelephonyManager] isInAirplaneMode];
Puede agregar el marcador booleano SBUsesNetwork establecido en verdadero en su Info.plist para mostrar la ventana emergente utilizada en el correo cuando está en modo avión.
Intente utilizar SCNetworkReachabilityGetFlags
(marco de SCNetworkReachabilityGetFlags
). Si la variable de indicadores devuelta es 0 y el valor de retorno es SÍ, se activa el modo avión.
Echa un vistazo a las clases de Accesibilidad de Apple.