获取iphone的系统信息使用[UIDevice currentDevice],信息如下:

[[UIDevice currentDevice] systemName]:系统名称,如iPhone OS

[[UIDevice currentDevice] systemVersion]:系统版本,如4.2.1

[[UIDevice currentDevice] model]:The model of the device,如iPhone或者iPod touch

[[UIDevice currentDevice] uniqueIdentifier]:设备的惟一标识号,deviceID

[[UIDevice currentDevice] name]:设备的名称,如 张三的iPhone

[[UIDevice currentDevice] localizedModel]:The model of the device as a localized string,类似model

详见http://developer.apple.com/library/ios/#documentation/uikit/reference/UIDevice_Class/Reference/UIDevice.html

但是以上的信息貌似无法得到设备的硬件信息,例如一个iphone3GS,系统升级到了iphone4。此时使用systemVersion得到的应该是4.x.x,那我们如何知道该设备为iphone3GS呢。网上流传一个方法,经测试应该是有用的。

自定义一个类:

#import <Foundation/Foundation.h>

@interface UIDeviceHardware : NSObject {

}

- (NSString *) platform;

- (NSString *) platformString;

@end

#import "UIDeviceHardware.h"

#include <sys/types.h>

#include <sys/sysctl.h>

@implementation UIDeviceHardware

- (NSString *) platform{

size_t size;

sysctlbyname("hw.machine", NULL, &size, NULL, 0);

char *machine = malloc(size);

sysctlbyname("hw.machine", machine, &size, NULL, 0);

NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding];

free(machine);

return platform;

}

- (NSString *) platformString{

NSString *platform = [self platform];

if ([platform isEqualToString:@"iPhone1,1"])    return @"iPhone 1G";

if ([platform isEqualToString:@"iPhone1,2"])    return @"iPhone 3G";

if ([platform isEqualToString:@"iPhone2,1"])    return @"iPhone 3GS";

if ([platform isEqualToString:@"iPhone3,1"])    return @"iPhone 4";

if ([platform isEqualToString:@"iPod1,1"])      return @"iPod Touch 1G";

if ([platform isEqualToString:@"iPod2,1"])      return @"iPod Touch 2G";

if ([platform isEqualToString:@"iPod3,1"])      return @"iPod Touch 3G";

if ([platform isEqualToString:@"iPod4,1"])      return @"iPod Touch 4G";

if ([platform isEqualToString:@"iPad1,1"])      return @"iPad";

if ([platform isEqualToString:@"i386"] || [platform isEqualToString:@"x86_64"])         return @"iPhone Simulator";

return platform;

}

@end

使用[[[UIDeviceHardware alloc] init] platform]应该就可以得到设备的硬件版本。(源码)

如何获取iphone的硬件版本以及系统信息相关推荐

  1. C#获取计算机的硬件、操作系统信息

    获得信息的命名空间是:System.Management Management需要先引用,再using 一.创建ManagementObjectSearcher对象获取相关信息 using Syste ...

  2. Android获取系统的硬件信息、系统版本以及如何检测ROM类型

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/52438706 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...

  3. 如何用代码获取Iphone 系统版本型号

    我做的某一功能模块,在不同版本Iphone OS 上用不同的代码实现. 如何用代码获取Iphone 系统版本型号呢? 用没有类似的宏定义,可以让不同版本的OS跑不同的代码,譬如: #ifdefine ...

  4. js 获取手机型号和版本

    // 获取手机型号及版本 function getPhoneModel() {var result = [];// 最新版google中 会报错// Array.prototype.contains ...

  5. 苹果七绕过基带激活2020_【快讯:苹果135亿的基带订单,高通疑有诈直接拒绝了;网传索尼移动考虑退出东南亚手机市场;黑客成功获取iPhone XS 权限】...

    资讯一 [接到苹果135亿的基带订单,高通疑有诈直接拒绝了] 苹果和高通的神仙打架还在继续.本周,苹果指责,由于高通不供应基带芯片,他们被迫改用Intel的产品. 而顺应苹果的说法,外媒曝光出来一封邮 ...

  6. iOS 准确获取 iPhone 状态栏、导航栏、TabBar高度,看这篇就够了

    前言 最近在项目开发的时候,发现项目提供的获取 「状态栏+导航栏高度」的方法,在 iPhone 12 系列机型上是错误的.解决了这个问题之后,决定做个简单的总结,于是有了这篇文章. 本文主要是分析了遇 ...

  7. 设置-关于手机里面硬件版本为空,如何完美甩锅

    报一个问题如上图"Setting--About phone--Model & hardware里面的Hardware version显示为空" 而我查看了cmdline.属 ...

  8. iOS 测试之非代码获取 iPhone 型号及其他信息

    首先 安装libimobiledevice和ideviceinstaller $ brew uninstall ideviceinstaller $ brew uninstall libimobile ...

  9. 水星路由器是linux系统,查看水星(Mercury)路由器的硬件版本操作方法

    原标题:"怎么查看水星(Mercury)路由器的硬件版本?"相关路由器设置经验分享. - 来源:191路由网 问:怎么才能知道使用的水星(mercury)无线路由器的硬件版本的,据 ...

最新文章

  1. Python3 元组tuple
  2. 对话创新工场陶宁:AI步入深水区下的投资逻辑
  3. linux操作系统进程间通信IPC之共享存储映射
  4. 生活中的这些难题,数据库开发者可为你解决!
  5. HDU 3785 寻找大富翁
  6. python函数的规则_Python函数的作用域规则和闭包
  7. 【TWVRP】基于matlab遗传算法求解带时间窗的载重约束外卖配送车辆路径规划问题【含Matlab源码 1417期】
  8. oracle mysql数据库管理工具下载_Oracle数据库管理工具PC版-Oracle数据库管理工具下载v15.0.21.0(32/64)-IE浏览器中文网站...
  9. mysql 游标移动_MySQL游标的简单实践
  10. 【20CSPS提高组】贪吃蛇
  11. 小O地图EXE版V0.9.5.5 - 功能总览
  12. php如何截取出视频中的指定帧作为图片
  13. 卑鄙与高尚,理想与现实
  14. 矩阵分析:Kronecker积,Hadamard积
  15. Pandas 数据预处理
  16. python 脏话处理、特殊词汇过滤!
  17. 【ASP.NET】家乡网站设计作业「历史」「人文」「自然」「美食」「高中」
  18. 东拉西扯:4岁的Blogbus怎么走
  19. 4.4V/3.85V锂电池充电器方案
  20. 芝法酱躺平攻略(4)—— powerdesigner与mybatis-plus生成代码

热门文章

  1. 进程间通信(IPC)
  2. 三极管,MOS管,IGBT
  3. 分布式存储系统:4.容错
  4. Centos配置nginx代理上网
  5. M103: Basic Cluster Administration chapter 1 The Mongod学习记录
  6. 「敏捷架构」敏捷架构:规模化敏捷开发的策略
  7. rm——Linux王国中的狙击手_莫韵乐的linux王国英雄传
  8. druid连接池mysql5.7_MySQL Druid连接池,Apache的DbUtils使用
  9. 雷蛇linux识别,雷蛇键盘配置工具 for linux
  10. MATLAB矩阵生成函数和基本运算