设备信息,系统版本,内存容量,磁盘容量

有的时候我们要获取设备的一些信息,希望该blog对你有帮助;

记得导入头文件,有的可能用不上,我就不一一核对了。

#import "sys/utsname.h"

#include <sys/socket.h>

#include <sys/sysctl.h>

#include <net/if.h>

#include <net/if_dl.h>

#include <mach/task_info.h>

#include <mach/task.h>

#include <mach/thread_act.h>

#include <mach/vm_map.h>

#include <mach/mach_traps.h>

#include <mach/mach_init.h>

#include <mach/mach_host.h>

#import <CoreFoundation/CoreFoundation.h>

#import <CoreLocation/CoreLocation.h>

/**

 *  获取当前设备型号标识(字符串)

 */

- (NSString *)getCurrentDeviceString

{

    struct utsname systemInfo;

    uname(&systemInfo);

    NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];

    return deviceString;

}


/**

 *  获取当前设备型号(枚举)

 */

- (DeviceType)getCurrentDeviceType

{

    NSString *deviceString = [self getCurrentDeviceString];

    if ([deviceString isEqualToString:@"iPhone1,1"]) {

        return iPhone;

    }else if ([deviceString isEqualToString:@"iPhone1,2"]){

        return iPhone3G;

    }else if ([deviceString isEqualToString:@"iPhone2,1"]){

        return iPhone3GS;

    }else if ([deviceString isEqualToString:@"iPhone3,1"]||

              [deviceString isEqualToString:@"iPhone3,2"]||

              [deviceString isEqualToString:@"iPhone3,3"]){

        return iPhone4;

    }else if ([deviceString isEqualToString:@"iPhone4,1"]){

        return iPhone4S;

    }else if ([deviceString isEqualToString:@"iPhone5,1"]||

              [deviceString isEqualToString:@"iPhone5,2"]){

        return iPhone5;

    }else if ([deviceString isEqualToString:@"iPhone5,3"]||

              [deviceString isEqualToString:@"iPhone5,4"]){

        return iPhone5C;

    }else if ([deviceString isEqualToString:@"iPhone6,1"]||

              [deviceString isEqualToString:@"iPhone6,2"]){

        return iPhone5S;

    }else if ([deviceString isEqualToString:@"iPhone7,2"]){

        return iPhone6;

    }else if ([deviceString isEqualToString:@"iPhone7,1"]){

        return iPhone6plus;

    }else if ([deviceString isEqualToString:@"iPad1,1"]){

        return iPad;

    }else if ([deviceString isEqualToString:@"iPad2,1"]||

              [deviceString isEqualToString:@"iPad2,2"]||

              [deviceString isEqualToString:@"iPad2,3"]||

              [deviceString isEqualToString:@"iPad2,4"]){

        return iPad2;

    }else if ([deviceString isEqualToString:@"iPad3,1"]||

              [deviceString isEqualToString:@"iPad3,2"]||

              [deviceString isEqualToString:@"iPad3,3"]){

        return iPad3;

    }else if ([deviceString isEqualToString:@"iPad3,4"]||

              [deviceString isEqualToString:@"iPad3,5"]||

              [deviceString isEqualToString:@"iPad3,6"]){

        return iPad4;

    }else if ([deviceString isEqualToString:@"iPad4,1"]||

              [deviceString isEqualToString:@"iPad4,2"]||

              [deviceString isEqualToString:@"iPad4,3"]){

        return iPadAir;

    }else if ([deviceString isEqualToString:@"iPad5,3"]||

              [deviceString isEqualToString:@"iPad5,4"]){

        return iPadAir2;

    }else if ([deviceString isEqualToString:@"iPad2,5"]||

              [deviceString isEqualToString:@"iPad2,6"]||

              [deviceString isEqualToString:@"iPad2,7"]){

        return iPadMini;

    }else if ([deviceString isEqualToString:@"iPad4,4"]||

              [deviceString isEqualToString:@"iPad4,5"]||

              [deviceString isEqualToString:@"iPad4,6"]){

        return iPadMini2;

    }else if ([deviceString isEqualToString:@"iPad4,7"]||

              [deviceString isEqualToString:@"iPad4,8"]||

              [deviceString isEqualToString:@"iPad4,9"]){

        return iPadMini3;

    }else if ([deviceString isEqualToString:@"iPod1,1"]){

        return iPodTouch;

    }else if ([deviceString isEqualToString:@"iPod2,1"]){

        return iPodTouch2G;

    }else if ([deviceString isEqualToString:@"iPod3,1"]){

        return iPodTouch3G;

    }else if ([deviceString isEqualToString:@"iPod4,1"]){

        return iPodTouch4G;

    }else if ([deviceString isEqualToString:@"iPod5,1"]){

        return iPodTouch5G;

    }else if ([deviceString isEqualToString:@"iPod7,1"]){

        return iPodTouch6G;

    }else if ([deviceString isEqualToString:@"iPhone8,2"]){

        return iPhone6SPlus;

    }else if ([deviceString isEqualToString:@"iPhone8,1"]){

        return iPhone6S;

    }else{

        return otherType;

    }

}


/**

 *  获取当前iOS系统版本

 */

- (NSString *)getCurrentSystemVersion

{

    NSString *systemVision = [[UIDevice currentDevice] systemVersion];

    HHLog(@"系统版本%@",systemVision);

    return systemVision;

}


/**

 *  获取当前设备的磁盘总容量(单位G)

 */

- (double)getCurrentDeviceDiskTotalSize

{

    NSDictionary *diskDict = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:nil];

    double totalSize = ((NSNumber*)[diskDict objectForKey:NSFileSystemSize]).doubleValue / (1024.0 * 1024.0 * 1024.0)

    HHLog(@"diskSize%f",totalSize);

    return totalSize;

}


/**

 *  获取当前设备的磁盘剩余容量(单位G)

 */

- (double)getCurrentDeviceDiskFreeSize

{

    NSDictionary *diskDict = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:nil];

    return ((NSNumber*)[diskDict objectForKey:NSFileSystemFreeSize]).doubleValue / (1024.0 * 1024.0 * 1024.0);

}


/**

 *  获取当前设备的磁盘使用容量(单位G)

 */

- (double)getCurrentDeviceDiskUsingSize

{


    HHLog(@"totalMemory%0.0f",([self getCurrentDeviceDiskTotalSize] - [self getCurrentDeviceDiskFreeSize]));

    return ([self getCurrentDeviceDiskTotalSize] - [self getCurrentDeviceDiskFreeSize]);

}


/**

 *  获取内存总容量(单位M)

 */

- (NSUInteger)getTotalMemory

{

    HHLog(@"totalMemory%0.0f",[self getSysInfo:HW_PHYSMEM] / 1024.0 / 1024.0);

    return [self getSysInfo:HW_PHYSMEM] / 1024.0 / 1024.0;

}


/**

 *  获取当前使用内存容量(单位M)

 */

- (NSUInteger)getUsingMemory

{

    HHLog(@"userMemory%0.0f",[self getSysInfo:HW_USERMEM]/ 1024.0 / 1024.0);

    return [self getSysInfo:HW_USERMEM] / 1024.0 / 1024.0;

}


- (NSUInteger)getSysInfo: (uint) typeSpecifier

{

    size_t size = sizeof(int);

    int results;

    int mib[2] = {CTL_HW, typeSpecifier};

    sysctl(mib, 2, &results, &size, NULL, 0);

    return (NSUInteger) results;

}



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值