下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ios获取当前设备型号等信息(全)包含iphone和iphonep这篇文章主要介绍了 ios获取当前设备型号设备信息的总结包含iphone和iphonep,包括ios 之前之后的获収方式,本文接的非常详细,具有参考借鉴价值,需要的朋友可以参考下#include <sys/types.h> #include <sys/sysctl.h>/ 获得设备型号 + (nsstring *)getcurrentdevicemodel int mib; size_t len; charchar *machine; mib = ctl_hw; mib= hw_machine; sysc
2、tl(mib, , null, &lenz null, ); machine = malloc(len); sysctl(mib, , machine, &len, null, ); nsstring *platform = nsstring stringwithcstring:machine encodi ng:nsasciistringe ncodi ng;free(machi ne); / iphone if (platformisequaltostring:"iphone/') return "iphoneg" if (platfo
3、rm isequaltostring:"iphone,") return "iphoneg" if (platform isequaltostring:"iphone/") return "iphonegs" if (platform isequaltostring:"iphone,") return "iphone" if (platform isequaltostring:"iphone/h) return "iphone" if (plat
4、form isequaltostring:,iphone/") return "iphone" if (platform isequaltostring:"iphone,") return "iphones" if (platform isequaltostring:"iphone/') return "iphone"讦(platform isequaltostring:"iphone/') return "iphone"讦(platform ise
5、qualtostring:"iphone,") return "iphonec" if (platform isequaltostring:,iphone,") return "iphonec" if (platform isequaltostring:"iphone,") return "iphones" if (platform isequaltostring:"iphone,") return hiphones" if (platform isequ
6、altostring:"iphone/,j) return "iphone" if (platform isequaltostring:"iphonez") return "iphoneplus" if (platform isequaltostring:"iphone/') return "iphones" if (platform isequaltostring:"iphone/') return ,iphonesplus" if (platform is
7、equaltostring:,iphone/") return uiphonese"讦 (platform isequaltostring:"iphone,") return "iphonese" if (platform isequaltostring:"iphonez") return "iphone" if (platform isequaltostring:"iphone/") return (©"iphoneplus" /ipod to
8、uch if (pla 廿 orm isequaltostring:"ipod,") return "ipodtouch"讦(platform isequaltostring:"ipodj,) return "ipodtouchg"讦(platform isequaltostring:"ipod/") return "ipodtouchg" if (platform isequaltostring:"ipodz") return "ipodtouchg&q
9、uot;讦(platform isequaltostring:"ipod,") return "ipodtouchg" if (platform isequaltostring:"ipod,") return nipodtouchg" /ipad 讦(platformisequaltostring:"ipad/")"ipad" if (platformisequaltostring:"ipad/")”ipad“; if (platform isequaltostri
10、ng:”ipacv)"ipad"if(platformisequaltostring:"ipad/')return"ipad"if(platformisequaltostring:"ipad/")returnisequaltostring:"ipadz")return"ipadh;if(platformreturn"ipad"if(platformisequaltostring:"ipad,")returnisequaltostring:“ipad
11、,”)return”ipad“;if(platformreturn"ipad"if(platformisequaltostring:”ipad,”)returnisequaltostring:”ipad,”)return"ipadh;讦(platformreturn"ipad"讦(platformisequaltostring:,ipad/,')return "ipad" /ipad air if (platform isequaltostring:"ipad,") return "ip
12、adair" if (platform isequaltostring:”ipad,”) return hipadair" if (platform isequaltostring:”ipad,”) return "ipadair" if (platform isequaltostringpad;') return "ipadairh; if (pla 廿 orm isequaltostring:"ipad/") return "ipadair" /ipad mini if (platform i
13、sequaltostring:"ipad/") return "ipadminig" if (platform isequaltostring:"ipad/') return hipadminig" if (platform isequaltostring:"ipad/") return "ipadminig" if (platform isequaltostring:"ipad/") return "ipadmini',; if (pla廿orm
14、isequaltostring:”ipad) return "ipadmini,; if (platform isequaltostring:"ipad/") return "ipadmini" if (platform isequaltostring:"ipad,") return"ipadmini"if(platformisequaltostring:,ipad/')return“ipadmini"if(platformisequaltostring:"ipad,"
15、;) return "ipadmini" if (platform isequaltostring:"ipad/") return ”ipadmini”;if(pla廿ormisequaltostring:,ipad/,')return“ipadmini”;if(platformisequaltostring:"i") return "iphonesimulator" if (platform isequaltostring:"x_") return "iph on esimu
16、lator" retur n platform;获取设备信息总结、获収设备的信息uidevice *device = uidevice alloc int; nsstring *name = ; 获取设备所有者的 名称 nsstring *model = ; 获取设备的类另u nsstring *type = device.localizedmodel; 获取本地化版本 nsstring *systemname = device.systemname; 获 収当前运行的系统nsstring *systemversion = device.s
17、ystemversion;/获収当前系统的版本、获取设备的唯一标示符nsstring identifier 二uidevice currentdevice identifierforvendor uuldstring;、为系统创建一个随机的标示符(nsstring*) createuuld nsstri ng *id = nsuserdefaults standarduserdefaults objectforkey:"uuid" 获取标识为"uuid"的值 if(id = nil) if(uidevice currentdevice systemver
18、sion floatvalue > .) nsstring *identifiernumber = nsuuid uuid uuldstring; /ios .之后可以使用的 api nsuserdefaults standarduserdefaults setobject:identifiernumber forkey:"uuid" 保存为 uuid nsuserdefaults standarduserdefaults synchronize; else cfuuldref uuid = cfuuidcreate(null); cfstringref uuidst
19、ring = cfuuidcreatestring(null, uuid); /ios.之前使用的 api nsstring *identifiernumber = nsstring stringwithformat:"%"z uuidstring; nsuserdefaults standarduserdefaults setobject:identifiernumber forkey:"uuid" nsuserdefaults standarduserdefaults synchronize; cfrelease(uuidstring); cfrel
20、ease(uuid); return nsuserdefaults standarduserdefaults objectforkey"uuid" return id;、获収当前屏幕分辨率的信息cgrect rect = ulscree n main scree n boun ds; cgfioat scale = ulscreen main scree n.scale; cgfioat width = rect.size.width * scale; cgfioat height = rect.size.height * scale;、获取运营簡的信息需要先导入头文件#i
21、mport<coretelephony/ctcarrier.h>#import<coreteleph on y/ctteleph ony networklnfo.h>创建对象cctelephonynetworklnfo *info = cttelephonynetworklnfo alloc init;获取运行商的名称ctcarrier *carrier = info subscribercellularprovider; nsstring *mcarrier = nsstri ng strin gwithformat:,l%'l/carrier carrier
22、name;获取当前网络的类型ios之后可以按照以下方式获取。方便而且类型多nsstring*mconnecttype=nsstringallocinitwithformat:,%,info.curre ntradioaccesstech no logy;类型有以下:ctradioaccesstechnologygprs 介于 g 和 g 之间,也叫.g ,过度技术 ctradioaccesstechnologyedge /edge 为 gprs 到第三代移动通信的过渡,edge 俗称.g ctradioaccesstechnologywcdma ctradioaccesstechnologyh
23、sdpa 亦称为.g(?g) ctradioaccesstechnologyhsupa /g 至u g 的过度技术 ctradioaccesstechnologycdmax /g ctradioaccesstechnologycdmaevdorev /g 标准 ctradioaccesstechnologycdmaevdoreva ctradioaccesstechnologycdmaevdorevb ctradioaccesstechnologyehrpd 电信使用的一种 g 到 g 的演进技术,.g ctradioaccesstechnologylte 接近 gios之前的话apple给我
24、们提供了 reachability来获取。首先要导入 systemconfiguration.framework,把下载下来的 reachability.h 和 reachability.m 加进项目屮reachability *reach = reachability reachabilitywithhostname:"appleu; switch(reach currentreachabilitystatus) case notreachable: 没有连接上 /do something break; case reachableviawifi: 通过 wifi 连接 /do s
25、omething break; case reachableviawwan: 通过 gprs 连接 /do something break; default: <span style=nwhite-space:pre"> </span>未矢h情况 /do something break;、获取当前信号的强弱这个貌似没有给出官方的api,但是网上有人说可以用私有的api实现,但是通不过appstore 的审核,方法如下: 利用linux下动态库显式调用api的函数。先包含头文件#import <dlfcn.h>(int)getsig nallevel
26、voidvoid*libha ndle=dlopen(,/system/library/frameworks/coreteleph on y.framework/coreteleph on y,l/rtld_lazy);/ /获収库句柄int (*ctgetsignalstrength)(); 定义一个与将要获収的函数匹配的函数指针 ctgetsignalstrength = (int(*)()dlsym(libhandle,"ctgetsignalstrength"); /获取指定名称的函数 if(ctgetsignalstrength = null) return ;e
27、lse int level = ctgetsignalstrength(); dlclose(libhandle); /切记关闭库 return level、设备震动需要加入 audiotoolbox framework,导入头文件 #import <audiotoolbox/audiotoolbox.h>在需要震动的地方添加代码:audioservicesplaysystemsound ( ksystemsoundld_vibrate);但是貌似这个不支持传入震动时间和模式,白己去控制吧。、获取电池的相关信息implementatio n battermonitor 获取电池当前
28、的状态,共有种状态 -(nsstring*) getbatterystate uidevice *device = uidevice currentdevice; if (device.batterystate = uidevicebatterystateu nknown) retur n ”u nkno w11; elseif(device.batterystate=uidevicebatterystateunplugged)returnhunplugged" elseif(device.batterystate=uidevicebatterystatecharging) retu
29、rn ,chargingu; else if (device.batterystate = uidevicebatterystatefull) return "full”; return nil; 获取电量的等级,-(float) getbatterylevel return uidevice currentdevicebatterylevel; (void) getbatterylnfo nsstring * state = getbatterystate); float level = getbatterylevel()*.; /yourcontrolfunc(state, le
30、vel); /写自己要实现的获収电量信息后怎么处理 打开对电量和电池状态的监控,类似 定时器的功能-(void) didload uidevice currentdevice setbatterymonitoringenable:yes; nsnotificati on center defaultce nter addobserver:self selector:selector(getbatterylnfo:) n ame:uidevicebatterystatedidcha ngenotificationobject: nil; nsnotificatio ncen terdefault
31、center addobserver:self www.hu nanwa ng.n etselector:selector(getbatterylnfo:) n ame:uidevicebatteryleveldidcha ngenotificationobject:nil;nstimerscheduledtimerwithtimelnterval:.f target:self selector:selector(getbatterylnfo:) userinfo:nil repeats:yes; end、app中打开一个网页这个比较简单,直接用提供的接口 openurl即可。nsstring *url = "ap
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 武汉农产品流通市场体系:现状、问题与创新发展路径
- 武安市初中美术欣赏课教学:现状剖析与优化策略探究
- 正电子湮没技术:解锁离子注入型半导体材料缺陷与磁性的微观密码
- 2026年南师附中特长试卷及答案
- 2026年关于公共卫生考试试题及答案
- 欧盟排放交易市场对能源市场的多维影响与协同发展研究
- 2026年公务员考试行政职业能力测验真题解析
- 欠驱动无人船运动控制方法:技术突破与应用创新
- 2026年初中教师新课标考试试题及答案
- 横断山微生物群落:组成稳定性、功能解析与物种衰退探究
- 社区零星维修工程投标方案(技术标)
- 碳捕集、利用与封存技术
- 城轨列车自动控制系统-ATO子系统
- 工程项目劳务人员工资表
- 抑郁病诊断证明书
- 典必殊策划书0913-课件
- 京台济泰段高边坡专项施工方案京台高速公路济南至泰安段改扩建工程
- 皮肤性病学-第9版配套PPT 5 细菌性皮肤病和真菌性皮肤病
- 2021年5月四级江苏省人力资源管理师考试《理论知识》真题及答案
- 第9课《资产阶级革命与资本主义制度的确立》课件【知识精讲架构+备课精研精梳】 高中历史统编版(2019)必修中外历史纲要下册
- GB/T 32299-2015航天项目风险管理
评论
0/150
提交评论