Gibt es eine Möglichkeit, das Gerät zu bestimmen, auf dem eine Anwendung läuft? Ich möchte unterscheiden zwischen iPhone
y iPod Touch
wenn möglich.
Antworten
Zu viele Anzeigen?Sie können prüfen GBDeviceInfo auf GitHub, auch verfügbar über CocoaPods. Es bietet eine einfache API für die Erkennung verschiedener Eigenschaften mit Unterstützung für alle aktuellen Geräte:
- Gerätefamilie
[GBDeviceInfo deviceDetails].family == GBDeviceFamilyiPhone;
- Modell des Geräts
[GBDeviceInfo deviceDetails].model == GBDeviceModeliPhone6.
Mehr dazu unter Liesmich .
Ich möchte hinzufügen, dass es für die Abfrage der Front- und Gehäusefarbe des Geräts eine private API gibt:
UIDevice *device = [UIDevice currentDevice];
SEL selector = NSSelectorFromString([device.systemVersion hasPrefix:@"7"] ? @"_deviceInfoForKey:" : @"deviceInfoForKey:");
if ([device respondsToSelector:selector]) {
NSLog(@"DeviceColor: %@ DeviceEnclosureColor: %@", [device performSelector:selector withObject:@"DeviceColor"], [device performSelector:selector withObject:@"DeviceEnclosureColor"]);
}
Ich habe darüber gebloggt und eine Beispielanwendung bereitgestellt:
Um das iPhone 4S zu identifizieren, überprüfen Sie einfach die folgenden Punkte:
var isIphone4S: Bool {
let width = UIScreen.main.bounds.size.width
let height = UIScreen.main.bounds.size.height
let proportions = width > height ? width / height : height / width
return proportions == 1.5 && UIDevice.current.model == "iPhone"
}