如何获得ios设备的硬件名称

                                                          如何获得ios设备的硬件名称

1.  如果要获得具体是哪个设备的第几代产品

           首先要包含  

#import"sys/utsname.h"



   定义为一个辅助函数:

   + (std::string) getIosDeviceNameAndGeneration
;


   函数实现如下:

   + (std::string) getIosDeviceNameAndGeneration

{

   

    structutsname systemInfo;

    

    uname(&systemInfo);


    

    NSLog(@"%@", [NSStringstringWithCString:systemInfo.machineencoding:NSUTF8StringEncoding]);


    return  std::string(systemInfo.machine);

}



    utsname的结构体定义如下:

    struct utsname {
char sysname[_SYS_NAMELEN]; /* [XSI] Name of OS */
char nodename[_SYS_NAMELEN]; /* [XSI] Name of this network node */
char release[_SYS_NAMELEN]; /* [XSI] Release level */
char version[_SYS_NAMELEN]; /* [XSI] Version level */
char machine[_SYS_NAMELEN]; /* [XSI] Hardware type */
};


    其中machine字段就是硬件的类型,比如 iPod2,1 等。这个表示是ipod的第二代产品。具体是什么设备,需要自己去解析字符串。


2. 如果是只要获得硬件的类型,比如 

iPhone ,

iPod touch

iPhone Simulator等等。

   

   + (std::string) getIosDeviceName;


   实现:

   + (std::string) getIosDeviceName

  {

    NSString  *nsModelName=[[UIDevicecurrentDevice]model];

    return    [nsModelName UTF8String];

  }


    machineName的值 跟 ios设备的对照表如下:

  "iPhone1,1" => "iPhone 1G", 

"iPhone1,2" => "iPhone 3G", 

"iPhone2,1" => "iPhone 3GS", 

"iPhone3,1" => "iPhone 4", 

"iPhone3,2" => "iPhone 4 Verizon", 

"iPhone3,3" => "iPhone 4 CDMA", 

"iPhone4,1" => "iPhone 4S", 


"iPod1,1" => "iPod Touch 1G", 

"iPod2,1" => "iPod Touch 2G", 

"iPod3,1" => "iPod Touch 3G", 

"iPod4,1" => "iPod Touch 4G", 


"iPad1,1" => "iPad", 

"iPad2,1" => "iPad 2 (WiFi)", 

"iPad2,2" => "iPad 2 (GSM)", 

"iPad2,3" => "iPad 2 (CDMA)",


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值