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