iOS:以编程方式检测Lightning vs.30针端口
我需要检测iOS设备是否配备Lightning端口或vintage 30针端口iOS:以编程方式检测Lightning vs.30针端口,ios,Ios,我需要检测iOS设备是否配备Lightning端口或vintage 30针端口 最可靠的方法是什么?使用此方法获取设备型号字符串: 然后进行手动启发式,以确定所使用的端口。这是假设未来的iOS设备将有一个Lightning端口,并且机器名称中的数字将遵循到目前为止的相同型号(2014年8月) 检测型号,然后在此基础上确定是否有一个或另一个。有没有比解析“iPad 3,4”字符串更好的方法?每次发布新设备时,都必须更新。这取决于,通过了解充电器是什么,您想要实现什么?我想显示用户界面,告诉用户您
最可靠的方法是什么?使用此方法获取设备型号字符串: 然后进行手动启发式,以确定所使用的端口。这是假设未来的iOS设备将有一个Lightning端口,并且机器名称中的数字将遵循到目前为止的相同型号(2014年8月)
检测型号,然后在此基础上确定是否有一个或另一个。有没有比解析“iPad 3,4”字符串更好的方法?每次发布新设备时,都必须更新。这取决于,通过了解充电器是什么,您想要实现什么?我想显示用户界面,告诉用户您是需要旧的30针CCK还是新的Lightning to USB适配器,并链接到Apple shoppe中的相关页面。请回答我的问题
NSString *machineName()
{
struct utsname systemInfo;
uname(&systemInfo);
return [NSString stringWithCString:systemInfo.machine
encoding:NSUTF8StringEncoding];
}
NS_ENUM(NSUInteger, MachineConnectorType)
{
MachineConnectorTypeUnknown,
MachineConnectorType30Pin,
MachineConnectorTypeLightning
};
enum MachineConnectorType MachineConnectorTypeWithMachineName(NSString *machineName)
{
if([machineName rangeOfString:@"iPad"].location != NSNotFound)
{
// 1st gen mini wants to be special
if([machineName isEqualToString:@"iPad2,5"])
{
return MachineConnectorTypeLightning;
}
NSString *model = [machineName substringFromIndex:4];
if(model.intValue >= 3)
return MachineConnectorTypeLightning;
return MachineConnectorType30Pin;
}
else if ([machineName rangeOfString:@"iPod"].location != NSNotFound)
{
NSString *model = [machineName substringFromIndex:4];
if(model.intValue >= 5)
return MachineConnectorTypeLightning;
return MachineConnectorType30Pin;
}
else if ([machineName rangeOfString:@"iPhone"].location != NSNotFound)
{
NSString *model = [machineName substringFromIndex:6];
if(model.intValue >= 5)
return MachineConnectorTypeLightning;
return MachineConnectorType30Pin;
}
return MachineConnectorTypeUnknown;
}