¿Hay alguna manera de determinar el dispositivo que ejecuta una aplicación? Quiero distinguir entre iPhone
y iPod Touch
, si es posible.
ios
objective-c
iphone
ipod-touch
Robar
fuente
fuente
Respuestas:
Puedes usar la
UIDevice
clase así:fuente
UI_USER_INTERFACE_IDIOM()
es seguro de usar en aplicaciones que aún admiten iOS <3.2: es una macroUIDevice.h
escrita específicamente para valores predeterminadosUIUserInterfaceIdiomPhone
en esas versiones anteriores de iOS.Esta es una actualización
UIDeviceHardware.m
de la respuesta anterior .fuente
NSString
rendimiento de comparación en cascadaNSString
esNSDictionary
. El nombre para definir uno sin dependencias de código es.plist
.Por favor, siéntase libre de usar esta clase ( gist @ github )
ACTUALIZACIÓN (14/01/11)
Obviamente, este código está un poco desactualizado por ahora, pero ciertamente puede actualizarse usando el código en este hilo provisto por el
Brian Robbins
cual incluye un código similar con modelos actualizados. Gracias por el apoyo en este hilo.fuente
Lo uso en mi aplicación. Actualizado a diciembre de 2012.
fuente
#import <sys/sysctl.h>
Última actualización: octubre de 2019: iPhone 11 , iPhone 11 Pro , iPhone 11 Pro Max , iPad (7a generación) agregados
Actualización anterior: marzo de 2019: iPad Air 2019 agregado (3ra generación), iPad mini 2019 (5ta generación), iPod Touch 2019 (7ma generación)
Rápido
(Probado en Swift 5, Swift 4, Swift 3)
La siguiente función devuelve una cadena con el nombre actual del dispositivo.
Puedes probarlo usando el siguiente código:
C objetivo
También agregué nuevos dispositivos al código Objective-C
No olvide importar sys / sysctl.h
Puedes probarlo usando el siguiente código:
fuente
iPhone7,2
es el 6 peroiPhone8,1
es el 6S? se invirtieron para el 6 y 6S?fuente
Cadenas de plataforma actualizadas para
iPad Air 2
yiPad mini 3
:fuente
Más utilizable
puedes leer propiedades con
fuente
[[UIScreen mainScreen] scale]
es 2 o no (para iOS 5+).Aquí hay una pequeña actualización con nuevos modelos:
fuente
Sé que ya se ha marcado una respuesta, pero para referencia futura, siempre puede usar el tamaño de la pantalla del dispositivo para averiguar qué dispositivo es así:
fuente
Solo agrego el código del dispositivo iPhone 4S a este hilo ...
El iPhone 4S devolverá la cadena @ "iPhone4,1".
fuente
¿Qué tal este código? Si se lanzó una nueva versión, se identificará con el último dispositivo conocido
fuente
Agregando al código de Arash, mi aplicación no me importa qué modelo estoy usando, solo quiero saber qué tipo de dispositivo, por lo tanto, puedo probar lo siguiente:
fuente
Basado en las muy buenas respuestas anteriores, esto es lo que se me ocurrió. Esto es muy similar a la respuesta de @ Rodrigo, pero aborda la preocupación de @ Oliver por el comentario sobre esa respuesta. Esto también proporciona la opción de incluir la cadena del modelo en la cadena de salida.
fuente
Hay una biblioteca bastante madura (para mí) llamada SDVersion . Puede verificar el modelo del dispositivo en ejecución, el tamaño de la pantalla y muchos otros parámetros. También es compatible con OSX.
Ejemplo:
fuente
fuente
fuente
Lo llevé un poco más lejos y convertí el gran bloque "isEqualToString" en una clasificación de máscaras de bits para el tipo de dispositivo, la generación y ese otro calificador después de la coma (lo llamo la subgeneración). Está envuelto en una clase con una llamada única SGPlatform que evita muchas operaciones de cadena repetitivas. El código está disponible https://github.com/danloughney/spookyGroup
La clase te permite hacer cosas como esta:
y
La clasificación de los dispositivos está en el método platformBits. Ese método debería ser muy familiar para los lectores de este hilo. He clasificado los dispositivos por su tipo y generación porque estoy principalmente interesado en el rendimiento general, pero la fuente se puede ajustar para proporcionar cualquier clasificación que le interese, pantalla de retina, capacidades de red, etc.
fuente
El fragmento de código mencionado a continuación debería ayudar:
fuente
fuente
Dutchie432
yBrian Robbins
han brindado excelentes soluciones. Pero todavía falta un modelo, el Verizon iPhone 4 . Aquí está la línea que falta.fuente
Me gustan las cosas de Erica Sadun. Incluye dispositivos AppleTV y otros en los que quizás no pienses.
https://github.com/erica/uidevice-extension/blob/master/UIDevice-Hardware.h
fuente
Los posibles valles de
son
iPod touch
,iPhone
,iPhone Simulator
,iPad
,iPad Simulator
Si quieres saber qué hardware
iOS
está arruinando el comoiPhone3
,iPhone4
,iPhone5
etc a continuación es el código para eseNOTA: El código a continuación puede no contener la cadena de todos los dispositivos, estoy con otros chicos que mantienen el mismo código en GitHub, así que tome el último código de allí
Objetivo-C : GitHub / DeviceUtil
Swift : GitHub / DeviceGuru
fuente
Responda en Swift 3,
fuente
Para una comparación simple, siempre me gusta la macro:
Es simple y fácil de usar.
fuente
Me gustaría agregar que para recuperar el color frontal y del gabinete del dispositivo hay una API privada:
He blogueado sobre esto y proporciono una aplicación de muestra:
http://www.futuretap.com/blog/device-colors/
fuente
Puedo asegurar que lo sugerido anteriormente funcionará en iOS 7 y superior. Creo que también funcionará en iOS 6. Pero no estoy seguro de eso.
fuente
Puede consultar GBDeviceInfo en GitHub, también disponible a través de CocoaPods. Proporciona API simple para detectar varias propiedades con soporte de todos los dispositivos más recientes:
[GBDeviceInfo deviceDetails].family == GBDeviceFamilyiPhone;
[GBDeviceInfo deviceDetails].model == GBDeviceModeliPhone6.
Para más información, lea Léame .
fuente
Para identificar iPhone 4S, simplemente verifique lo siguiente:
fuente
He creado una extensión que te permite tener 3 niveles de identificación:
Se actualiza con los últimos dispositivos iOS
UIDeviceDetector
fuente