iOS-获取苹果设备信息

1.获取手机可用容量

- (float)freeDiskSpace {
    NSError *error;
    NSDictionary *infoDic = [[NSFileManager defaultManager]attributesOfFileSystemForPath:NSHomeDirectory() error:&error];
    return [[infoDic objectForKey:NSFileSystemFreeSize] floatValue]/1024.0f/1024.f/1024.0f;
}

2.获得手机总容量

- (float)getTotalDiskSpace {
    float totalSpace;
    NSError *error;
    NSDictionary *infoDic = [[NSFileManager defaultManager]attributesOfFileSystemForPath:NSHomeDirectory() error:&error];
    if (infoDic) {
        NSNumber *fileSystemSizeInBytes = [infoDic objectForKey:NSFileSystemSize];
        totalSpace = [fileSystemSizeInBytes floatValue]/1024.0f/1024.0f/1024.0f;
        return totalSpace;
    } else {
        NSLog(@"Error Obtaining System Memory info:Domain = %@,Code = %ld", [error domain], (long)[error code]);
    }
    return 0;
}

3.手机型号

struct  utsname {
    char    sysname[_SYS_NAMELEN];  /* [XSI] Name of OS */
    char    nodename[_SYS_NAMELEN]; /* [XSI] Name of this network node */
    char    release[_SYS_NAMELEN];  /* [XSI] Release level */
    char    version[_SYS_NAMELEN];  /* [XSI] Version level */
    char    machine[_SYS_NAMELEN];  /* [XSI] Hardware type */
};

首先#import “sys/utsname.h”

struct utsname systemInfo;
uname(&systemInfo);
NSString * system =  [NSString stringWithCString:systemInfo.sysname encoding:NSUTF8StringEncoding];//值为:zhiDarwin
NSString * nodename = [NSString stringWithCString:systemInfo.nodename encoding:NSUTF8StringEncoding];//值为:设备的名字
NSString * release = [NSString stringWithCString:systemInfo.release encoding:NSUTF8StringEncoding];//值为:Darwin Kernel Version 14.0.0: Mon Nov  3 22:24:40 PST 2014; root:xnu-2783.3.22~1/RELEASE_ARM_S5L8955X
NSString * version = [NSString stringWithCString:systemInfo.version encoding:NSUTF8StringEncoding];//值为:14.0.0
NSString * machine = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];//值为:iPad3,4

4.是否连接WiFi或无线广域网WWAN

/*首先加入SystemConfiguration.framework
#import "Reachability.h"
将Reachability.h和Reachability.m加到项目中,下载链接:https://developer.apple.com/library/ios/samplecode/Reachability/Introduction/Intro.html
typedef enum : NSInteger {
    NotReachable = 0,//无网络
    ReachableViaWiFi,//WiFi
    ReachableViaWWAN//无线广域网(WWAN,即Wireless Wide Area Network
} NetworkStatus;
*/
- (NetworkStatus)getNetworkReachabilityStatus {
    Reachability *reachbility=[Reachability reachabilityWithHostName:@"www.baidu.com"];
    return [reachbility currentReachabilityStatus];
}

5.获得手机网络运营商

//加入CorTelephony.framework
//#import <CoreTelephony/CTTelephonyNetworkInfo.h>
//#import <CoreTelephony/CTCarrier.h>
- (NSString *)checkCarrier {
    NSString *ret = [[NSString alloc]init];
    CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc]init];
    CTCarrier *carrier = [info subscriberCellularProvider];

    if (carrier == nil){
        return @"无运营商";
    }

    //获取移动网络码
    NSString *code = [carrier mobileNetworkCode];
    if ([code isEqual:@""]) {
        return @"code null";
    }
    if ([code isEqualToString:@"00"] || [code isEqualToString:@"02"] || [code isEqualToString:@"07"]) {
        ret = @"移动";
    }
    if ([code isEqualToString:@"01"] || [code isEqualToString:@"06"]) {
        ret = @"联通";
    }
    if ([code isEqualToString:@"03"] || [code isEqualToString:@"05"]) {
        ret = @"电信";
    }
    NSLog(@"ret=%@", ret);
    return ret;
}

小知识:
IMSI是国际移动用户识别码的简称(International Mobile Subscriber Identity)
IMSI共有15位,其结构如下:
MCC+MNC+MIN
MCC:Mobile Country Code,移动国家码,共3位,中国为460;
MNC:Mobile NetworkCode,移动网络码,共2位
在中国,移动的代码为电00,02,07;联通的代码为01,06;电信的代码为03 ,05; 铁通代码为20.
详细查看移动设备网络码:
http://zh.wikipedia.org/wiki/%E7%A7%BB%E5%8A%A8%E8%AE%BE%E5%A4%87%E7%BD%91%E7%BB%9C%E4%BB%A3%E7%A0%81
合起来就是(也是Android手机中APN配置文件中的代码):
中国移动:46000 46002
中国联通:46001
中国电信:46003
举例,一个典型的IMSI号码为460030912121001
参考:
获取Android手机信息:http://justwyy.iteye.com/blog/1730557

Resource From:http://www.stuhack.com/bc/yidong/120810314.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值