iOS如何判断当前网络的运营商
2013-12-02 21:22
471 查看
在IOS上存在retain屏,经常需要在一些时刻用到高清图,有些时候也要到普通图。
在网络条件很爽的情况下,这当然不在话下。如果咱是iphone用户,又正好用的是移动卡。
如果还用的高清图的话是不是灰常的杯具,显然是一定的。
从目前的情况来看,只有移动的gprs的卡速度慢的像牛一样,这样我们就需要权衡在一些场合牺牲点质量
换取速度。
那么我们就得必须知道当前网络是神马运营商。给个变通的解决方案。
网络在00—02—07三种情况时是移动网络。具体参考下面的数据
China – CN
详细数据请参考: http://en.wikipedia.org/wiki/Mobile_Network_Code
转自iloss博客 http://www.iloss.me/2012/07/21/ios如何判断当前网络的运营商/ 需引入框架CoreTelephony.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) {
[info release];
return @"0";
}
NSString *code = [carrier mobileNetworkCode];
if (code == @"") {
[info release];
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 = @"电信";;
}
[info release];
return ret;
}
在网络条件很爽的情况下,这当然不在话下。如果咱是iphone用户,又正好用的是移动卡。
如果还用的高清图的话是不是灰常的杯具,显然是一定的。
从目前的情况来看,只有移动的gprs的卡速度慢的像牛一样,这样我们就需要权衡在一些场合牺牲点质量
换取速度。
那么我们就得必须知道当前网络是神马运营商。给个变通的解决方案。
01 | - (BOOL)checkChinaMobile |
02 | { |
03 | BOOL ret = NO; |
04 | CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init]; |
05 | CTCarrier *carrier = [info subscriberCellularProvider]; |
06 | if (carrier == nil) { |
07 | [info release]; |
08 | return NO; |
09 | } |
10 |
11 | NSString *code = [carrier mobileNetworkCode]; |
12 | if (code == nil) { |
13 | [info release]; |
14 | return NO; |
15 | } |
16 |
17 | if([code isEqualToString:@"00"] || [code isEqualToString:@"02"] || [code isEqualToString:@"07"]) { |
18 | ret = YES; |
19 | } |
20 | [info release]; |
21 |
22 | return ret; |
23 | } |
China – CN
详细数据请参考: http://en.wikipedia.org/wiki/Mobile_Network_Code
转自iloss博客 http://www.iloss.me/2012/07/21/ios如何判断当前网络的运营商/ 需引入框架CoreTelephony.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) {
[info release];
return @"0";
}
NSString *code = [carrier mobileNetworkCode];
if (code == @"") {
[info release];
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 = @"电信";;
}
[info release];
return ret;
}
相关文章推荐
- [转帖]网络协议封封封之Panabit配置文档
- error C2440: 'static_cast' : cannot convert from 'void (__thiscall CTCP服务器程序Dlg::* )(WPARAM,LPARAM)'
- EFDC主控文件efdc.inp文件的xml格式化处理——转载http://blog.sina.com.cn/s/articlelist_1584892573_0_1.html
- TCP,UDP发送数据包大小浅析
- 雅虎NCP:网络黄页的终结者
- 基于TCP的socket通信过程及例子
- HTTPClient实现java自动登录人人网
- UVA 753 - A Plug for UNIX(网络流)
- java中判断网络是否连通
- Linux网络编程--TCP的套接字通信学习笔记
- Linux命令 — 设置或查看网络配置命令ifconfig
- 【自由谈】城域网IPv6过渡技术——DS-lite的业务流程
- [原]HTTP协议笔记
- 四大门户Q3财报深度解读:惊喜与惊吓共存
- 网络编程Winsock——listen
- 网络版 捕鱼设计思路
- UNIX网络编程
- TCP/IP
- tcpdump使用说明
- 记录一个http协议说明