Llame a la aplicación * Configuración * oficial desde mi aplicación en iPhone

En un momento de mi aplicación, me gustaría redirigir al usuario a la aplicación de configuración oficial. Si es posible, también quiero ir directamente a la sección de red dentro de la aplicación de configuración .

Creo que lo que necesito es el esquema de URL de la aplicación de configuración y el formato para construir mi solicitud. Pero dudo que llamar a una aplicación tan oficial esté prohibido.

¿Alguien puede ayudarme?

Como se señala en los comentarios a continuación, esto ya no es posible en iOS versión 5.1 y posteriores.

Si tiene iOS 5.0, se aplica lo siguiente:

Esto ahora es posible en iOS 5 usando el esquema de URL ‘prefs:’. Funciona desde una página web o desde una aplicación.

ejemplos de urls:

prefs:root=General prefs:root=General&path=Network 

uso de muestra:

 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General"]] [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=General&path=Network"]] 

Desde IOS 8 puede llamar a la configuración desde la aplicación con esto:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];

También funciona en iOS versión> 5.1, pero debe agregar un esquema de URL en tipos de URL en Xcode:

enter image description here

Entonces puedes usar

 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]]; 

Puede abrir la configuración WiFi del sistema ahora.

Otra ruta se encuentra en esta respuesta: Configuración de inicio de iOS -> Restricciones del esquema de URL .

Malas noticias: como sugirieron @Hlung y @jasongregori, para iDevices cuya versión de SO > = iOS 5.1 && , una vez más NO hay forma oficial / documentada de llamar a la aplicación de configuración incorporada desde una aplicación de terceros. Período.

Llamar a la aplicación de configuración desde otra aplicación solo es posible desde iOS 8. Entonces, use el siguiente código

 if([CLLocationManager locationServicesEnabled]&& [CLLocationManager authorizationStatus] != kCLAuthorizationStatusDenied) { //...Location service is enabled } else { if([[[UIDevice currentDevice] systemVersion] floatValue]<8.0) { UIAlertView* curr1=[[UIAlertView alloc] initWithTitle:@"This app does not have access to Location service" message:@"You can enable access in Settings->Privacy->Location->Location Services" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [curr1 show]; } else { UIAlertView* curr2=[[UIAlertView alloc] initWithTitle:@"This app does not have access to Location service" message:@"You can enable access in Settings->Privacy->Location->Location Services" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:@"Settings", nil]; curr2.tag=121; [curr2 show]; } } - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if (alertView.tag == 121 && buttonIndex == 1) { //code for opening settings app in iOS 8 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]; } } 

desde iOS 8, puede redireccionar con

 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]; 

disfruta la encoding

Solo una respuesta adicional para agregar a la dirección iOS8 +. Si está soportando algo inferior a 8, debe verificar si es compatible

 BOOL canGoToSettings = (UIApplicationOpenSettingsURLString != NULL); if (canGoToSettings) { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]; } 

Para la configuración en iOS 9 esto me funciona.

 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Settings"]]; 

Pero asegúrese de agregar un esquema de URL en los tipos de URL en

Pestaña Información en los objectives de la aplicación.

Para iOS 10 puedes usar:

 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=Settings"]]; 

¡También está trabajando en iOS 9!