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