1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > ios 获取电量百分比_获取iOS设备信息(内存/电量/容量/型号/IP地址/当前WIFI名称)...

ios 获取电量百分比_获取iOS设备信息(内存/电量/容量/型号/IP地址/当前WIFI名称)...

时间:2024-07-09 07:23:53

相关推荐

ios 获取电量百分比_获取iOS设备信息(内存/电量/容量/型号/IP地址/当前WIFI名称)...

最近工作上需要获取设备的一些信息,整理了一下,方便大家。

1.获取电池电量(一般用百分数表示,大家自行处理就好)-(CGFloat)getBatteryQuantity

{

return[[UIDevicecurrentDevice]batteryLevel];

}

2.获取电池状态(UIDeviceBatteryState为枚举类型)-(UIDeviceBatteryState)getBatteryStauts

{

return[UIDevicecurrentDevice].batteryState;

}

3.获取总内存大小-(longlong)getTotalMemorySize

{

return[NSProcessInfoprocessInfo].physicalMemory;

}

4.获取当前可用内存-(longlong)getAvailableMemorySize

{

vm_statistics_data_tvmStats;

mach_msg_type_number_tinfoCount=HOST_VM_INFO_COUNT;

kern_return_tkernReturn=host_statistics(mach_host_self(),HOST_VM_INFO,(host_info_t)&vmStats,&infoCount);

if(kernReturn!=KERN_SUCCESS)

{

returnNSNotFound;

}

return((vm_page_size*vmStats.free_count+vm_page_size*vmStats.inactive_count));

}

5.获取已使用内存-(double)getUsedMemory

{

task_basic_info_data_ttaskInfo;

mach_msg_type_number_tinfoCount=TASK_BASIC_INFO_COUNT;

kern_return_tkernReturn=task_info(mach_task_self(),

TASK_BASIC_INFO,

(task_info_t)&taskInfo,

&infoCount);

if(kernReturn!=KERN_SUCCESS

){

returnNSNotFound;

}

returntaskInfo.resident_size;

}

6.获取总磁盘容量include

-(longlong)getTotalDiskSize

{

structstatfsbuf;

unsignedlonglongfreeSpace=-1;

if(statfs("/var",&buf)>=0)

{

freeSpace=(unsignedlonglong)(buf.f_bsize*buf.f_blocks);

}

returnfreeSpace;

}

7.获取可用磁盘容量-(longlong)getAvailableDiskSize

{

structstatfsbuf;

unsignedlonglongfreeSpace=-1;

if(statfs("/var",&buf)>=0)

{

freeSpace=(unsignedlonglong)(buf.f_bsize*buf.f_bavail);

}

returnfreeSpace;

}

8.容量转换-(NSString*)fileSizeToString:(unsignedlonglong)fileSize

{

NSIntegerKB=1024;

NSIntegerMB=KB*KB;

NSIntegerGB=MB*KB;

if(fileSize

return@"0B";

}elseif(fileSize

return@"

}elseif(fileSize

return[NSStringstringWithFormat:@"%.1fKB",((CGFloat)fileSize)/KB];

}elseif(fileSize

return[NSStringstringWithFormat:@"%.1fMB",((CGFloat)fileSize)/MB];

}else{

return[NSStringstringWithFormat:@"%.1fGB",((CGFloat)fileSize)/GB];

}

}

8.型号

#import +(NSString*)getCurrentDeviceModel:(UIViewController*)controller

{

intmib[2];

size_tlen;

char*machine;

mib[0]=CTL_HW;

mib[1]=HW_MACHINE;

sysctl(mib,2,NULL,&len,NULL,0);

machine=malloc(len);

sysctl(mib,2,machine,&len,NULL,0);

NSString*platform=[NSStringstringWithCString:machineencoding:NSASCIIStringEncoding];

free(machine);

if([platformisEqualToString:@"iPhone3,1"])return@"iPhone4(A1332)";

if([platformisEqualToString:@"iPhone3,2"])return@"iPhone4(A1332)";

if([platformisEqualToString:@"iPhone3,3"])return@"iPhone4(A1349)";

if([platformisEqualToString:@"iPhone4,1"])return@"iPhone4s(A1387/A1431)";

if([platformisEqualToString:@"iPhone5,1"])return@"iPhone5(A1428)";

if([platformisEqualToString:@"iPhone5,2"])return@"iPhone5(A1429/A1442)";

if([platformisEqualToString:@"iPhone5,3"])return@"iPhone5c(A1456/A1532)";

if([platformisEqualToString:@"iPhone5,4"])return@"iPhone5c(A1507/A1516/A1526/A1529)";

if([platformisEqualToString:@"iPhone6,1"])return@"iPhone5s(A1453/A1533)";

if([platformisEqualToString:@"iPhone6,2"])return@"iPhone5s(A1457/A1518/A1528/A1530)";

if([platformisEqualToString:@"iPhone7,1"])return@"iPhone6Plus(A1522/A1524)";

if([platformisEqualToString:@"iPhone7,2"])return@"iPhone6(A1549/A1586)";

if([platformisEqualToString:@"iPhone8,1"])return@"iPhone6s";

if([platformisEqualToString:@"iPhone8,2"])return@"iPhone6sPlus";

if([platformisEqualToString:@"iPod1,1"])return@"iPodTouch1G(A1213)";

if([platformisEqualToString:@"iPod2,1"])return@"iPodTouch2G(A1288)";

if([platformisEqualToString:@"iPod3,1"])return@"iPodTouch3G(A1318)";

if([platformisEqualToString:@"iPod4,1"])return@"iPodTouch4G(A1367)";

if([platformisEqualToString:@"iPod5,1"])return@"iPodTouch5G(A1421/A1509)";

if([platformisEqualToString:@"iPad1,1"])return@"iPad1G(A1219/A1337)";

if([platformisEqualToString:@"iPad2,1"])return@"iPad2(A1395)";

if([platformisEqualToString:@"iPad2,2"])return@"iPad2(A1396)";

if([platformisEqualToString:@"iPad2,3"])return@"iPad2(A1397)";

if([platformisEqualToString:@"iPad2,4"])return@"iPad2(A1395+NewChip)";

if([platformisEqualToString:@"iPad2,5"])return@"iPadMini1G(A1432)";

if([platformisEqualToString:@"iPad2,6"])return@"iPadMini1G(A1454)";

if([platformisEqualToString:@"iPad2,7"])return@"iPadMini1G(A1455)";

if([platformisEqualToString:@"iPad3,1"])return@"iPad3(A1416)";

if([platformisEqualToString:@"iPad3,2"])return@"iPad3(A1403)";

if([platformisEqualToString:@"iPad3,3"])return@"iPad3(A1430)";

if([platformisEqualToString:@"iPad3,4"])return@"iPad4(A1458)";

if([platformisEqualToString:@"iPad3,5"])return@"iPad4(A1459)";

if([platformisEqualToString:@"iPad3,6"])return@"iPad4(A1460)";

if([platformisEqualToString:@"iPad4,1"])return@"iPadAir(A1474)";

if([platformisEqualToString:@"iPad4,2"])return@"iPadAir(A1475)";

if([platformisEqualToString:@"iPad4,3"])return@"iPadAir(A1476)";

if([platformisEqualToString:@"iPad4,4"])return@"iPadMini2G(A1489)";

if([platformisEqualToString:@"iPad4,5"])return@"iPadMini2G(A1490)";

if([platformisEqualToString:@"iPad4,6"])return@"iPadMini2G(A1491)";

if([platformisEqualToString:@"i386"])return@"iPhoneSimulator";

if([platformisEqualToString:@"x86_64"])return@"iPhoneSimulator";

returnplatform;

}

可以根据自己的需求增改。有人说也可以按照手机屏幕来判断,但5和5s/5c等手机屏幕相同尺寸则无法判断。。。我只做了iPhone的机型,所以iPad和iPod Touch的信息并没有更新到最新,也请朋友们补充。

9.IP地址

#import 和#import -(NSString*)deviceIPAdress{

NSString*address=@"anerroroccurredwhenobtainingipaddress";

structifaddrs*interfaces=NULL;

structifaddrs*temp_addr=NULL;

intsuccess=0;

success=getifaddrs(&interfaces);

if(success==0){//0表示获取成功

temp_addr=interfaces;

while(temp_addr!=NULL){

if(temp_addr->ifa_addr->sa_family==AF_INET){

//Checkifinterfaceisen0whichisthewificonnectionontheiPhone

if([[NSStringstringWithUTF8String:temp_addr->ifa_name]isEqualToString:@"en0"]){

//GetNSStringfromCString

address=[NSStringstringWithUTF8String:inet_ntoa(((structsockaddr_in*)temp_addr->ifa_addr)->sin_addr)];

}

}

temp_addr=temp_addr->ifa_next;

}

}

freeifaddrs(interfaces);

returnaddress;

}

10.当前手机连接的WIFI名称(SSID)

需要#import -(NSString*)getWifiName

{

NSString*wifiName=nil;

CFArrayRefwifiInterfaces=CNCopySupportedInterfaces();

if(!wifiInterfaces){

returnnil;

}

NSArray*interfaces=(__bridgeNSArray*)wifiInterfaces;

for(NSString*interfaceNameininterfaces){

CFDictionaryRefdictRef=CNCopyCurrentNetworkInfo((__bridgeCFStringRef)(interfaceName));

if(dictRef){

NSDictionary*networkInfo=(__bridgeNSDictionary*)dictRef;

wifiName=[networkInfoobjectForKey:(__bridgeNSString*)kCNNetworkInfoKeySSID];

CFRelease(dictRef);

}

}

CFRelease(wifiInterfaces);

returnwifiName;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。