#import <Foundation/Foundation.h>
@interface Statistics : NSObject
+(id)sharedStatistics;
+ (NSString *) AppName;
+ (NSString *) AppVersion;
+(int)AppVersionCode;
@end
/
#import "Statistics.h"
#import <sys/utsname.h>
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
#import <CoreTelephony/CTCarrier.h>
static Statistics * statistics;
static NSDictionary * infoDictionary;
static NSString * _iphoneType;
static NSMutableDictionary * dic;
static NSDictionary * AppVersion;
static NSDictionary * IOS_Version;
static NSDictionary * Iphone_name;
static NSDictionary * NetworkType;
static NSDictionary * NetworkInfo;
@implementation Statistics
+ (id)sharedStatistics
{
if (statistics == nil) {
statistics = [[[self class]alloc]init];
infoDictionary = [[NSBundle mainBundle] infoDictionary];
}
return statistics;
}
//获取网络通讯码、运营商
+ (NSString *)networkInfo{
CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier * carrier = [info subscriberCellularProvider];
// NSString * mcc = [carrier mobileCountryCode]; // 国家码 如:460
// NSString * mnc = [carrier mobileNetworkCode]; // 网络码 如:01
NSString * name = [carrier carrierName]; // 运营商名称,中国联通
// NSString * isoCountryCode = [carrier isoCountryCode]; // cn
// BOOL allowsVOIP = [carrier allowsVOIP];// YES
// NSString *radioAccessTechnology = info.currentRadioAccessTechnology; // 无线连接技术,如CTRadioAccessTechnologyLTE
if (name == NULL) {
name = @"未知";
}
return name;
}
//网络状态
+ (NSString *)getNetworkType {
NSString *netconnType = @"NONE";
CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init];
NSString *currentStatus = info.currentRadioAccessTechnology;
if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyGPRS"]) {
netconnType = @"GPRS";
}else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyEdge"]) {
netconnType = @"2.75G EDGE";
}else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyWCDMA"]){
netconnType = @"3G";
}else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyHSDPA"]){
netconnType = @"3.5G HSDPA";
}else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyHSUPA"]){
netconnType = @"3.5G HSUPA";
}else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyCDMA1x"]){
netconnType = @"2G";
}else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyCDMAEVDORev0"]){
netconnType = @"3G";
}else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyCDMAEVDORevA"]){
netconnType = @"3G";
}else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyCDMAEVDORevB"]){
netconnType = @"3G";
}else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyeHRPD"]){
netconnType = @"HRPD";
}else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyLTE"]){
netconnType = @"4G";
}
else{
netconnType = @"WIFI";
}
return netconnType;
}
//app名称
+ (NSString *)AppName
{
NSString * app_Name = [infoDictionary objectForKey:@"CFBundleDisplayName"];
NSLog(@"app_Name:%@",app_Name);
return app_Name;
}
//app版本
+(NSString *)AppVersion
{
NSString * app_Version = [NSString stringWithFormat:@"App版本:%@",[infoDictionary objectForKey:@"CFBundleShortVersionString"]];
NSLog(@"%@",app_Version);
return app_Version;
}
+(int)AppVersionCode
{
int code = [[infoDictionary objectForKey:@"CFBundleShortVersionString"] intValue];
NSLog(@"%d",code);
return code;
}
//手机系统版本
+(NSString *)IphoneVersion
{
NSString* phoneVersion = [NSString stringWithFormat:@"手机系统版本:%@",[[UIDevice currentDevice] systemVersion]];
NSLog(@"%@",phoneVersion);
return phoneVersion;
}
//手机型号
+(NSString *)iphoneType
{
struct utsname systemInfo;
uname(&systemInfo);
NSString * platform = [NSString stringWithCString: systemInfo.machine encoding:NSASCIIStringEncoding];
if([platform isEqualToString:@"iPhone1,1"]){
return@"iPhone 2G";
}
if([platform isEqualToString:@"iPhone1,2"]){
return@"iPhone 3G";
}
if([platform isEqualToString:@"iPhone2,1"])
{
return@"iPhone 3GS";
}
if([platform isEqualToString:@"iPhone3,1"])
{
return@"iPhone 4";
}
if([platform isEqualToString:@"iPhone3,2"])
{
return@"iPhone 4";
}
if([platform isEqualToString:@"iPhone3,3"]){
return@"iPhone 4";
}
if([platform isEqualToString:@"iPhone4,1"]){
return@"iPhone 4S";
}
if([platform isEqualToString:@"iPhone5,1"]){
return@"iPhone 5";
}
if([platform isEqualToString:@"iPhone5,2"]){
return@"iPhone 5";
}
if([platform isEqualToString:@"iPhone5,3"]){
return@"iPhone 5c";
}
if([platform isEqualToString:@"iPhone5,4"]){
return@"iPhone 5c";
}
if([platform isEqualToString:@"iPhone6,1"]){
return@"iPhone 5s";
}
if([platform isEqualToString:@"iPhone6,2"]){
return@"iPhone 5s";
}
if([platform isEqualToString:@"iPhone7,1"]){
return@"iPhone 6 Plus";
}
if([platform isEqualToString:@"iPhone7,2"]){
return@"iPhone 6";
}
if([platform isEqualToString:@"iPhone8,1"]){
return@"iPhone 6s";
}
if([platform isEqualToString:@"iPhone8,2"])
{
return@"iPhone 6s Plus";
}
if([platform isEqualToString:@"iPhone8,4"]){
return@"iPhone SE";
}
if([platform isEqualToString:@"iPhone9,1"])
{
return@"iPhone 7";
}
if([platform isEqualToString:@"iPhone9,2"]){
return@"iPhone 7 Plus";
}
if([platform isEqualToString:@"iPhone10,1"]){
return@"iPhone 8";
}
if([platform isEqualToString:@"iPhone10,4"]){
return@"iPhone 8";
}
if([platform isEqualToString:@"iPhone10,2"]){
return@"iPhone 8 Plus";
}
if([platform isEqualToString:@"iPhone10,5"]){
return@"iPhone 8 Plus";
}
if([platform isEqualToString:@"iPhone10,3"]){
return@"iPhone X";
}
if([platform isEqualToString:@"iPhone10,6"]){
return@"iPhone X";
}
// if([platform isEqualToString:@"iPod1,1"]){
// return@"iPod Touch 1G";
// }
// if([platform isEqualToString:@"iPod2,1"]){
// return@"iPod Touch 2G";
// }
// if([platform isEqualToString:@"iPod3,1"]){
// return@"iPod Touch 3G";
// }
// if([platform isEqualToString:@"iPod4,1"]){
// return@"iPod Touch 4G";
// }
// if([platform isEqualToString:@"iPod5,1"]){
// return@"iPod Touch 5G";
// }
// if([platform isEqualToString:@"iPad1,1"]){
// return@"iPad 1G";
// }
// if([platform isEqualToString:@"iPad2,1"]){
// return@"iPad 2";
// }
// if([platform isEqualToString:@"iPad2,2"]) return@"iPad 2";
// if([platform isEqualToString:@"iPad2,3"]) return@"iPad 2";
// if([platform isEqualToString:@"iPad2,4"]) return@"iPad 2";
// if([platform isEqualToString:@"iPad2,5"]) return@"iPad Mini 1G";
// if([platform isEqualToString:@"iPad2,6"]) return@"iPad Mini 1G";
// if([platform isEqualToString:@"iPad2,7"]) return@"iPad Mini 1G";
// if([platform isEqualToString:@"iPad3,1"]) return@"iPad 3";
// if([platform isEqualToString:@"iPad3,2"]) return@"iPad 3";
// if([platform isEqualToString:@"iPad3,3"]) return@"iPad 3";
// if([platform isEqualToString:@"iPad3,4"]) return@"iPad 4";
// if([platform isEqualToString:@"iPad3,5"]) return@"iPad 4";
// if([platform isEqualToString:@"iPad3,6"]) return@"iPad 4";
// if([platform isEqualToString:@"iPad4,1"]) return@"iPad Air";
// if([platform isEqualToString:@"iPad4,2"]) return@"iPad Air";
// if([platform isEqualToString:@"iPad4,3"]) return@"iPad Air";
// if([platform isEqualToString:@"iPad4,4"]) return@"iPad Mini 2G";
// if([platform isEqualToString:@"iPad4,5"]) return@"iPad Mini 2G";
// if([platform isEqualToString:@"iPad4,6"]) return@"iPad Mini 2G";
// if([platform isEqualToString:@"iPad4,7"]) return@"iPad Mini 3";
// if([platform isEqualToString:@"iPad4,8"]) return@"iPad Mini 3";
// if([platform isEqualToString:@"iPad4,9"]) return@"iPad Mini 3";
// if([platform isEqualToString:@"iPad5,1"]) return@"iPad Mini 4";
// if([platform isEqualToString:@"iPad5,2"]) return@"iPad Mini 4";
// if([platform isEqualToString:@"iPad5,3"]) return@"iPad Air 2";
// if([platform isEqualToString:@"iPad5,4"]) return@"iPad Air 2";
// if([platform isEqualToString:@"iPad6,3"]) return@"iPad Pro 9.7";
// if([platform isEqualToString:@"iPad6,4"]) return@"iPad Pro 9.7";
// if([platform isEqualToString:@"iPad6,7"]) return@"iPad Pro 12.9";
// if([platform isEqualToString:@"iPad6,8"]) return@"iPad Pro 12.9";
// if([platform isEqualToString:@"i386"]) return@"iPhone Simulator";
// if([platform isEqualToString:@"x86_64"]) return@"iPhone Simulator";
return platform;
}
@end