ios获取设备相关信息

后端开发 2023-08-23 14:32:40
4阅读

1. 获取设备信息

UIDevice *device=[[UIDevice alloc] int];

NSString *name=设备.name; //获取设备所有者名称

NSString *model=设备.name; //获取设备的类别

NSString *type=device.localizedModel; //获取本地化版本

NSString *systemName=设备.systemName; //获取当前运行的系统

NSString *systemVersion=device.systemVersion;//获取当前系统版本

2、获取设备唯一标识

NSString *identifier=[[[UIDevice currentDevice]identifierForVendor] UUIDString];

3. 为系统创建随机标识符

(NSString*) 创建UUID

{

NSString *id=[[NSUserDefaults standardUserDefaults] objectForKey:@'UUID']; //获取标识为“UUID”的值

if(id==nil)

{

if([[[UIDevice currentDevice] systemVersion] floatValue] 6.0)

{

NSString *identifierNumber=[[NSUUID UUID] UUIDString]; //ios 6.0之后可用的API

[[NSUserDefaults standardUserDefaults] setObject:identifierNumber forKey:@'UUID']; //保存为UUID

[[NSUserDefaults standardUserDefaults]同步];

}

别的{

CFUUIDRef uuid=CFUUIDCreate(NULL);

CFStringRef uuidString=CFUUIDCreateString(NULL, uuid); //ios6.0之前使用的api

NSString *identifierNumber=[NSString stringWithFormat:@'%@', uuidString];

[[NSUserDefaults standardUserDefaults] setObject:identifierNumber forKey:@'UUID'];

[[NSUserDefaults standardUserDefaults]同步];

CFRelease(uuidString);

CFRelease(uuid);

}

返回[[NSUserDefaults standardUserDefaults] objectForKey@'UUID'];

}

返回ID;

}

4.获取当前屏幕分辨率信息

CGRect 矩形=[[UIScreen 主屏幕] 边界];

CGFloat 比例=[[UIScreen mainScreen].scale];

CGFloat 宽度=矩形。尺寸。宽度*比例;

CGFloat 高度=矩形。尺寸。高度*比例;

5. 获取运营商信息

需要先导入头文件

#import CoreTelephony/CTCarrier.h

#import CoreTelephony/CTTelephonyNetworkInfo.h

创建对象

CCTelephonyNetworkInfo *info=[[CTTelephonyNetworkInfo alloc] init];

获取运营商名称

CTCarrier *运营商=[信息subscriberCellularProvider];

NSString *mCarrier=[NSString stringWithFormat:@'%@',[载体载体名称]];

获取当前网络类型

ios7以后可以通过以下方式获取。方便且多功能

NSString *mConnectType=[[NSString alloc] initWithFormat:@'%@',info.currentRadioAccessTechnology];

类型如下:

CRadioAccessTechnologyGPRS //2G和3G之间,也叫2.5G,过度技术

CRadioAccessTechnologyEdge //EDGE是GPRS向第三代移动通信的过渡,EDGE俗称2.75G

中国无线接入技术WCDMA

CRadioAccessTechnologyHSDPA //也称为3.5G(3?G)

CRadioAccessTechnologyHSUPA //3G到4G的过渡技术

CRadioAccessTechnologyCDMA1x //3G

CRadioAccessTechnologyCDMAEVDORev0 //3G标准

CRadioAccessTechnologyCDMAEVDORevA

CRadioAccessTechnologyCDMAEVDORevB

CRadioAccessTechnologyeHRPD //电信使用的3G到4G演进技术,3.75G

CRadioAccessTechnologyLTE //接近4G

在ios7之前,苹果为我们提供了Reachability的获取。

首先导入SystemConfiguration.framework,并将下载的Reachability.h和Reachability.m添加到项目中

可达性*reach=[可达性reachabilityWithHostName:@'www.apple.com'];

switch([达到当前ReachabilityStatus])

{

case NotReachable: //未连接

//做一点事

休息;

case ReachableViaWiFi: //通过wifi连接

//做一点事

休息;

case ReachableViaWWAN: //通过GPRS连接

//做一点事

休息;

default: span style='white-space:pre' /span//未知情况

//做一点事

休息;

}

这篇博客还说了其他方法,但是因为是调用私有API,所以没有使用。

6.获取当前信号强度

这个好像没有官方的api,但是网上有人说可以用私有的api来实现,但是无法通过appStore的审核。方法如下:

使用linux下的动态库显式调用api的函数。首先包含头文件#import dlfcn.h

(int) 获取信号电平

{

voidvoid *libHandle=dlopen('/System/Library/Frameworks/CoreTelephony.framework/CoreTelephony',RTLD_LAZY);//获取库句柄

int (*CTGetSignalStrength)(); //定义与要获取的函数匹配的函数指针

CTGetSignalStrength=(int(*)())dlsym(libHandle,'CTGetSignalStrength'); //获取指定名称的函数

if(CTGetSignalStrength==NULL)

返回-1;

别的{

int level=CTGetSignalStrength();

dlclose(libHandle); //记得关闭库

回报水平

}

}

7、设备振动

需要加入AudioToolbox框架,导入头文件#import AudioToolbox/AudioToolbox.h

在需要振动的地方添加代码:

AudioServicesPlaySystemSound ( kSystemSoundID_Vibrate);

不过好像这个不支持传入震动时间和模式,所以可以自己控制。

8.获取电池相关信息

@实现电池监视器

//获取电池当前状态,一共有4种状态

-(NSString*) getBatteryState {

UIDevice *device=[UIDevice 当前设备];

if (device.batteryState==UIDeviceBatteryStateUnknown) {

返回@'未知';

}else if (device.batteryState==UIDeviceBatteryStateUnplugged){

返回@'拔掉电源';

}else if (device.batteryState==UIDeviceBatteryStateCharging){

return @'正在充电';

}else if (device.batteryState==UIDeviceBatteryStateFull){

返回@'完整';

}

返回零;

}

//获取功率等级,0.00~1.00

-(float) getBatteryLevel {

返回[UIDevice currentDevice].batteryLevel;

}

-(void) 获取电池信息

{

NSString *state=getBatteryState();

浮动水平=getBatteryLevel()*100.0;

//yourControlFunc(状态,级别); //写出获取电量信息后想要实现什么以及如何处理

}

//开启电量和电池状态的监控,类似定时器功能

-(无效)didLoad

{

[[UIDevice currentDevice] setBatteryMonitoringEnable:YES];

[[NSNotificationCenter defaultCenter] addObserver:self 选择器:@selector(getBatteryInfo:) name:UIDeviceBatteryStateDidChangeNotification object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self 选择器:@selector(getBatteryInfo:) name:UIDeviceBatteryLevelDidChangeNotification object:nil];

[NSTimer ScheduledTimerWithTimeInterval:0.5f target:self 选择器:@selector(getBatteryInfo:) userInfo:nil Repeats:YES];

}

@结尾

9. 在应用程序中打开网页

这个比较简单,直接使用提供的接口openURL即可。

NSString *url=@'www.apple.com'

[[UIApplication共享应用程序] openURL:[NSURL URLWithString:url]];

作者:稻草人11223

the end
免责声明:本文不代表本站的观点和立场,如有侵权请联系本站删除!本站仅提供信息存储空间服务。