文档章节

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

SunGiantor
 SunGiantor
发布于 2015/01/31 13:59
字数 539
阅读 30
收藏 0

// 硬盘容量

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

}


本文转载自:http://www.tuicool.com/articles/uQfyyi

SunGiantor
粉丝 15
博文 97
码字总数 40524
作品 0
长宁
高级程序员
私信 提问
疯狂ios讲义之使用CoreLocation定位(1)

9.1 iOS的定位支持 iOS设备支持的定位方式有多种,最早期的iPhone只支持通过运营商的基站信号进行定位,后来iOS系统开始引入WiFi支持,从而允许iOS设备通过周围的WiFi信号进行定位。 从iPhon...

博文视点
2014/04/02
1K
1
react native之获知设备联网或离线的状态信息。

NetInfo模块可以获知设备联网或离线的状态信息。 IOS 以异步的方式判断设备是否联网,以及是否使用了移动数据网络。 - 设备处于离线状态。 - 设备处于联网状态且通过wifi链接,或者是一个iOS...

Chason-洪
2017/10/17
0
0
ios下获取所有实体/虚拟网卡的信息,并以此判断设备所处的网络状态

一直在做移动设备网络方面的开发,最近项目需要解决ios设备判断是否打开个人热点。 经过网上搜索,找到一个比较笨的办法,就是通过获取status bar高度是否等于40来判断热点状态。当有其他设备...

luan.ma
2013/10/17
4.2K
2
我扒了 6730 个微信用户数据,得出了这些结论......

作者 | NFii 责编 | 郭芮 本文给大家分享一篇从小程序用户使用网络、微信版本、手机型号、屏幕样式、微信字体大小等方面来分析大家的手机使用习惯。 技术分析 1、数据来源:微信小程序(英文...

CSDN资讯
2018/12/02
0
0
iOS 7.0.6 和 6.1.6 发布:修正SSL连接验证问题

苹果今天向iPhone、iPad和iPod touch用户发布了iOS 7.0.6系统更新,升级补丁修正了SSL连接验证时出现的问题。iOS 7.0.6的编译号为11b651,iPhone 5s通过OTA更新时需要下载容量为35.4MB补丁。...

oschina
2014/02/22
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0
PHP+Ajax微信手机端九宫格抽奖实例

PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现。支持可以设置中奖概率等。 奖品列表 <div class="lottery_list clearfix" id="lottery"> ......

ymkjs1990
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部