iOS开发 - 如何获取设备的总容量和可用容量 网络运营商 3g/wifi判断 手机型号

镔哥最近开发需获取手机容量,其实这你是一个很好的例子

//硬盘容量

- (float)getTotalDiskSpace

{

float totalSpace;

NSError * error;

NSDictionary * infoDic = [[NSFileManager
defaultManager] attributesOfFileSystemForPath:[self
getHomeDirectory]
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;

}

}

- (NSString *)getHomeDirectory

{

NSString * homePath =
NSHomeDirectory();

return homePath;

}

/*

如何获取设备的总容量和可用容量

*/

+ (NSNumber *)totalDiskSpace

{

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

return [fattributes
objectForKey:NSFileSystemSize];

}

+ (NSNumber *)freeDiskSpace

{

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

return [fattributes
objectForKey:NSFileSystemFreeSize];

}

//手机型号(这跟系统获取的不一样,这是获取iPhone5,4,6之类的)要导入

#import "sys/utsname.h"

+ (NSString*)deviceString

{

//
需要#import "sys/utsname.h"

struct utsname systemInfo;

uname(&systemInfo);

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

if ([deviceString
isEqualToString:@"iPhone1,1"])   
return @"iPhone 1G";

if ([deviceString
isEqualToString:@"iPhone1,2"])   
return @"iPhone 3G";

if ([deviceString
isEqualToString:@"iPhone2,1"])   
return @"iPhone 3GS";

if ([deviceString
isEqualToString:@"iPhone3,1"])   
return @"iPhone 4";

if ([deviceString
isEqualToString:@"iPhone4,1"])   
return @"iPhone 4S";

if ([deviceString
isEqualToString:@"iPhone5,2"])   
return @"iPhone 5";

if ([deviceString
isEqualToString:@"iPhone3,2"])   
return
@"Verizon iPhone 4";

if ([deviceString
isEqualToString:@"iPod1,1"])     
return @"iPod Touch 1G";

if ([deviceString
isEqualToString:@"iPod2,1"])     
return @"iPod Touch 2G";

if ([deviceString
isEqualToString:@"iPod3,1"])     
return @"iPod Touch 3G";

if ([deviceString
isEqualToString:@"iPod4,1"])     
return @"iPod Touch 4G";

if ([deviceString
isEqualToString:@"iPad1,1"])     
return @"iPad";

if ([deviceString
isEqualToString:@"iPad2,1"])     
return @"iPad 2 (WiFi)";

if ([deviceString
isEqualToString:@"iPad2,2"])     
return @"iPad 2 (GSM)";

if ([deviceString
isEqualToString:@"iPad2,3"])     
return @"iPad 2 (CDMA)";

if ([deviceString
isEqualToString:@"i386"])        
return @"Simulator";

if ([deviceString
isEqualToString:@"x86_64"])      
return @"Simulator";

NSLog(@"NOTE: Unknown device type: %@", deviceString);

return deviceString;

}

// 判读是3g还是Wi-Fi 要导入#import"Reachability.h"

Reachability *reachbility=[Reachability
reachabilityWithHostName:@"www.baidu.com"];   
NetworkStatus status=[reachbility
currentReachabilityStatus];

NSString *netStr;

//使用 WiFi
网络连接

if (status==ReachableViaWiFi)

{

netStr = @"wifi";

//[[NSUserDefaults standardUserDefaults]setObject:netStr forKey:@"network"];

}

else if(status ==ReachableViaWWAN)

{

netStr = @"3g";

//[[NSUserDefaults standardUserDefaults]setObject:netStr forKey:@"network"];

}

NSLog(@"网络是:%@",netStr);

/*关于获取运营商信息,需通过CoreTelephony Framework中的CTTelephonyNetworkInfo和CTCarrier类型。这些都在iOS
4.0后就有了。

import必要的header:

#import <CoreTelephony/CTCarrier.h>

#import <CoreTelephony/CTTelephonyNetworkInfo.h>

何判断当前网络的运营商

*/

//用来辨别设备所使用网络的运营商

- (NSString*)checkCarrier

{

NSString *ret = [[NSString
alloc]init];

CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo
alloc]
init];

CTCarrier *carrier = [info
subscriberCellularProvider];

if (carrier ==
nil) {

return @"0";

}

NSString *code = [carrier
mobileNetworkCode];

if ([code  isEqual:
@""]) {

return @"0";

}

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);

return ret;

}

时间: 2024-08-10 17:18:39

iOS开发 - 如何获取设备的总容量和可用容量 网络运营商 3g/wifi判断 手机型号的相关文章

[转载]iOS开发:获取设备信息

开发iOS平台的应用的时候,可以获取iOS设备的设备信息,包括设备的名称,设备的机型,设备的iOS版本等等.设备信息主要来自 UIDevice 类. UIDevice *currentDevice = [UIDevice currentDevice]; NSString *strName = currentDevice.name; //设备名称 NSString *strModel = currentDevice.model; //设备类别 NSString *strLocalizedModel

IOS开发之——获取屏幕的尺寸及各模拟器代表的型号

获取屏幕尺寸 [[[UIScreen mainScreen] currentMode].size.width]; [[[UIScreen mainScreen] currentMode].size.height]; 也能够:  NSLog(@"Frame Height:%f  Frame Width:%f",self.frame.size.height,self.frame.size.width);  如上的代码在不同设备上,得到的值是不同的. iPhone (3.5 inch): 3

李洪强iOS开发-网络新闻获取数据思路回顾

李洪强iOS开发-网络新闻获取数据思路回顾 01 创建一个继承自AFHTTPSessionManager的工具类:LHQNetworkTool 用来发送网络请求获取数据  1.1 定义类方法返回单例对象 1.2 单例的实现,设置baseURL,设置超时时长等 02 创建一个分类, 传入一个类的参数返回一个数组,返回当前类的所有属性 用在模型中处理模型数据 03 创建图片轮播模型(model)类发送请求获取轮播图片的数据  3.1 定义属性: 标题,图片 定义两个类方法: (1)传入一个字典的参数

iOS开发之获取沙盒路径

iOS开发之沙盒机制(SandBox)具体解说了沙盒的一些机制.在开发中,我们须要对沙盒进行操作.所以我们须要获取到沙盒路径. 沙盒里的目录包含Documents.Library.tmp.这三个目录的作用请点击这里.接下来我们来解说怎样获取Documents.Library.tmp的路径. 获取沙盒根文件夹 获取沙盒根文件夹.直接调用NSHomeDirectory(): //获取沙盒根文件夹 NSString *directory = NSHomeDirectory(); NSLog(@"dir

iOS开发中,怎么打包为ipa格式的软件包以及怎么安装到手机终端上

iOS开发中,怎么打包为ipa格式的软件包以及怎么安装到手机终端上. (我的开发环境为Xcode6.1.1 ) 作为个人开发者(当然我的开发者帐号为个人开发者帐号,而不是企业开发者帐号),对于自己来说,我们只需要真机调试就可以将应用安装到自己的手机上:如果你在发布前想给更多的测试或朋友使用你的APP(关键是他们并不在你的身边,如果在你的身边,你当然可以通过真机调试一个一个的将应用安装到他们的手机上:此时你的APP还没有上线,Appstore还没有),你该怎么做呢?想想吧! 在开发者中心中,你可能

Android获取SD卡总容量,可用大小,机身内存总容量及可用大小

public long getSDTotalSize() { /*获取存储卡路径*/ File sdcardDir= Environment.getExternalStorageDirectory(); /*StatFs 看文件系统空间使用情况*/ StatFs statFs=new StatFs(sdcardDir.getPath()); long blockSize= statFs.getBlockSizeLong(); long totalSize=statFs.getBlockCount

iOS开发-获取当前设备信息

1.iOS获取当前app的名称和版本号  NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; CFShow(infoDictionary); // app名称 NSString *app_Name = [infoDictionary objectForKey:@"CFBundleDisplayName"]; // app版本 NSString *app_Version = [infoDiction

ios 开发中获取字符串中重复的字符的rang

iOS 开发中经常会遇到处理字符串的问题,对于一个字符串经常会遇见里面包含重复的字符需要对重复的字符进行处理,下面的代码就是对重复字符进行处理的操作,具体代码如下所示: /** * 返回重复字符的location * * @param text 初始化的字符串 * @param findText 查找的字符 * * @return 返回重复字符的location */ - (NSMutableArray *)getRangeStr:(NSString *)text findText:(NSStr

iOS开发中获取视图在屏幕上显示的位置

在iOS开发中,我们会经常遇到一个问题,例如,点击一个按钮,弹出一个遮罩层,上面显示一个弹框,弹框显示的位置在按钮附近.如果这个按钮的位置相对于屏幕边缘的距离是固定的,那就容易了,可以直接写死位置.可是,如果按钮是在UITableView的cell上呢?随着UITableView的滚动,按钮可能在顶部,也可能在底部,还可能在中间,左侧.右侧都有可能,那么,这个时候,怎么去计算按钮所在的位置呢?如果按钮所在的UITabelView是在另外一个UIScrollView的一个cell上呢?如果外面再有