Pregunta

Es esta la forma adecuada para detectar el dispositivo de un usuario está ejecutando?

NSString *currentModel = [[UIDevice currentDevice] model];
if ([currentModel isEqualToString:@"iPhone"]) {
    // The user is running on iPhone so allow Call, Camera, etc.
} else {
    // The user is running on a different device (iPod / iPad / iPhone Simulator) disallow Call.
}
¿Fue útil?

Solución

No es una solución general de Apple, pero en muchos casos ofrece llamadas a la API para comprobar wether característica específica es compatible o no. Ejemplos podrían ser:

  • +isSourceTypeAvailable: y +availableMediaTypesForSourceType: en UIImagePickerController que le permite comprobar si la cámara está disponible para el dispositivo actual.

  • +canSendMail en MFMailComposeViewController para comprobar si el dispositivo está configurado para enviar correo.

  • -canOpenURL en clase UIApplication para comprobar si se puede abrir la URL. Por ejemplo se puede utilizar para comprobar si es posible hacer una llamada telefónica:

    if (![[UIApplication sharedApplication] canOpenURL:
                                     [NSURL URLWithString:@"tel://"]])
        //We cannot make a call - hide call button here
    

Si estas llamadas a la API están disponibles para su propósito usaría en lugar de confiar en los identificadores de cadenas codificadas.

Otros consejos

No estoy seguro de que me gustaría generalizar que gran parte (es decir, es posible que el tiempo será un iPod con una cámara, y no sé que el iPhone siempre será llamado "iPhone"), pero sí, esta es la forma aceptada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top