Existe uma maneira de determinar o dispositivo executando um aplicativo. Eu quero distinguir entre iPhone
e iPod Touch
, se possível.
ios
objective-c
iphone
ipod-touch
Roubar
fonte
fonte
Respostas:
Você pode usar a
UIDevice
classe assim:fonte
UI_USER_INTERFACE_IDIOM()
é seguro para uso em aplicativos que ainda suportam iOS <3.2: é uma macroUIDevice.h
escrita especificamente para o padrãoUIUserInterfaceIdiomPhone
nessas versões mais antigas do iOS.Esta é uma atualização
UIDeviceHardware.m
da resposta acima .fonte
NSString
comparação em cascata que produzNSString
éNSDictionary
. O nome para definir uma sem dependências de código é.plist
.Por favor, sinta-se livre para usar esta classe ( gist @ github )
ATUALIZAÇÃO (14/01/11)
Obviamente, esse código está um pouco desatualizado até agora, mas certamente pode ser atualizado usando o código neste encadeamento fornecido pelo
Brian Robbins
qual inclui código semelhante com modelos atualizados. Obrigado pelo apoio nesta discussão.fonte
Eu uso isso no meu aplicativo. Atualizado em dezembro de 2012.
fonte
#import <sys/sysctl.h>
Última atualização - outubro de 2019: Adicionado iPhone 11 , iPhone 11 Pro , iPhone 11 Pro Max , iPad (7ª geração)
Atualização anterior - março de 2019: Adicionado iPad Air 2019 (3ª geração), iPad mini 2019 (5ª geração), iPod Touch 2019 (7ª geração)
Rápido
(Testado em Swift 5, Swift 4, Swift 3)
A função abaixo retorna uma string com o nome do dispositivo atual.
Você pode testá-lo usando o seguinte código:
Objetivo-C
Também adicionei novos dispositivos ao código Objective-C
Não se esqueça de importar sys / sysctl.h
Você pode testá-lo usando o seguinte código:
fonte
iPhone7,2
é o 6, masiPhone8,1
é o 6S? eles inverteram para o 6 e 6S?fonte
Cadeias de plataforma atualizadas para
iPad Air 2
eiPad mini 3
:fonte
Mais utilizável
você pode ler propriedades com
fonte
[[UIScreen mainScreen] scale]
é 2 ou não (para iOS 5 ou superior).Aqui está uma pequena atualização com novos modelos:
fonte
Eu sei que uma resposta já foi marcada, mas para referência futura, você sempre pode usar o tamanho da tela do dispositivo para descobrir qual é o dispositivo:
fonte
Basta adicionar o código do dispositivo iPhone 4S a este tópico ...
O iPhone 4S retornará a string @ "iPhone4,1".
fonte
Que tal esse código? Se uma nova versão for lançada, você identificará o último dispositivo conhecido
fonte
Adicionando ao código do Arash, não ligo para o meu aplicativo qual modelo estou usando, só quero saber que tipo de dispositivo, para que eu possa testar da seguinte forma:
fonte
Com base nas respostas muito boas acima, aqui está o que eu criei. Isso é muito semelhante à resposta de @ Rodrigo, mas aborda a preocupação de @ Oliver a partir do comentário sobre essa resposta. Isso também fornece a opção de incluir a sequência do modelo na sequência de saída.
fonte
Há uma biblioteca bastante madura (por mim) para isso chamada SDVersion . Você pode verificar o modelo do dispositivo em execução, o tamanho da tela e muitos outros parâmetros. Também suporta OSX.
Exemplo:
fonte
fonte
fonte
Eu levei um pouco mais longe e converti o grande bloco "isEqualToString" em uma classificação de máscaras de bits para o tipo de dispositivo, a geração e esse outro qualificador após a vírgula (estou chamando de sub-geração). Ele é agrupado em uma classe com uma chamada de singleton SGPlatform, que evita muitas operações de sequência repetitiva. O código está disponível https://github.com/danloughney/spookyGroup
A classe permite que você faça coisas assim:
e
A classificação dos dispositivos está no método platformBits. Esse método deve ser muito familiar para os leitores deste tópico. Classifiquei os dispositivos por tipo e geração, porque estou interessado principalmente no desempenho geral, mas a fonte pode ser alterada para fornecer qualquer classificação em que você esteja interessado, tela de retina, recursos de rede, etc.
fonte
O trecho de código abaixo mencionado deve ajudar:
fonte
fonte
Dutchie432
eBrian Robbins
forneceram ótimas soluções. Mas ainda falta um modelo, o iPhone 4 da Verizon . Aqui está a linha que falta.fonte
Eu gosto das coisas de Erica Sadun. Ela inclui dispositivos AppleTV e outros que você não imagina.
https://github.com/erica/uidevice-extension/blob/master/UIDevice-Hardware.h
fonte
Os possíveis valores de
são
iPod touch
,iPhone
,iPhone Simulator
,iPad
,iPad Simulator
Se você quer saber qual hardware
iOS
está arruinando em comoiPhone3
,iPhone4
,iPhone5
etc abaixo está o código para queNOTA: O código abaixo pode não conter todas as strings do dispositivo. Estou com outras pessoas mantendo o mesmo código no GitHub , por isso, pegue o código mais recente a partir daí
Objetivo-C : GitHub / DeviceUtil
Swift : GitHub / DeviceGuru
fonte
Resposta no Swift 3,
fonte
Para uma comparação simples, eu sempre gosto de macro:
É simples e fácil de usar.
fonte
Gostaria de acrescentar que, para recuperar a cor frontal e do gabinete do dispositivo, há uma API privada:
Eu escrevi sobre isso e forneço um aplicativo de exemplo:
http://www.futuretap.com/blog/device-colors/
fonte
Posso garantir que o sugerido acima funcionará no iOS 7 e superior. Eu acredito que ele funcionará no iOS 6 também. Mas não tenho certeza disso.
fonte
Você pode verificar o GBDeviceInfo no GitHub, também disponível via CocoaPods. Ele fornece API simples para detectar várias propriedades com suporte para todos os dispositivos mais recentes:
[GBDeviceInfo deviceDetails].family == GBDeviceFamilyiPhone;
[GBDeviceInfo deviceDetails].model == GBDeviceModeliPhone6.
Para mais informações, consulte o Leiame .
fonte
Para identificar o iPhone 4S, basta verificar o seguinte:
fonte
Eu criei uma extensão que permite que você tenha três níveis de identificação:
É atualizado com os últimos dispositivos iOS
UIDeviceDetector
fonte