美文网首页
《iOS开发常用的一些与设备相关的基础API》

《iOS开发常用的一些与设备相关的基础API》

作者: 北漂老张 | 来源:发表于2018-09-25 17:25 被阅读0次

《iOS开发常用的一些与设备相关的基础API》


#import "HIHIDeviceTool.h"

#import <sys/utsname.h> // 获取手机类型需要用到的头文件

#import // 获取设备运营商用到的类

#import // 获取设备运营商用到的类

#import // 获取设备运营商用到的类

#import "Reachability.h" // 苹果官方提供的网络监测类

@interface HIHIDeviceTool ()

@end

@implementation HIHIDeviceTool

/**

 手机类型

 @return iPhone X

 */

+(NSString*)iphoneType {

   //需要导入头文件:#import <sys/utsname.h>

    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"] || [platform isEqualToString:@"iPhone3,2"] || [platform isEqualToString:@"iPhone3,3"] ) {

        return @"iphone 4";

    }

    if([platform isEqualToString:@"iPhone4,1"]) {

        return @"iphone 4S";

    }

    if([platform isEqualToString:@"iPhone5,1"] || [platform isEqualToString:@"iPhone5,2"]) {

        return @"iphone 5";

    }

    if([platform isEqualToString:@"iPhone5,3"] || [platform isEqualToString:@"iPhone5,4"]) {

        return @"iphone 5C";

    }

    if([platform isEqualToString:@"iPhone6,1"] || [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([platformisEqualToString:@"iPhone9,2"] ) {

        return @"iphone 7 Plus";

    }

    if([platform isEqualToString:@"iPhone10,1"] || [platform isEqualToString:@"iPhone10,4"]) {

        return @"iphone 8";

    }

    if([platform isEqualToString:@"iPhone10,2"] || [platform isEqualToString:@"iPhone10,5"]) {

        return @"iphone 8 Plus";

    }

    if([platform isEqualToString:@"iPhone10,3"] || [platform isEqualToString:@"iPhone10,6"]) {

        return @"iphone X";

    }

    returnplatform;

}

/**

 手机系统版本

 @return ios 11.1

 */

+(NSString*)phoneVersionAndOS{

    NSString *OS = [[UIDevice currentDevice] systemName];

    NSString *phoneversion = [[UIDevice currentDevice] systemVersion];

    return[NSStringstringWithFormat:@"%@ %@",OS,phoneversion];

}

/**

 APP版本号

 @return 版本号

 */

+(NSString*)appVersion{

    return [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];

}

/**

 设备ID

 @return NSUUID

 */

+(NSString*)DeviceID{

    return [NSString stringWithFormat:@"%@",[[UIDevice currentDevice] identifierForVendor]];

}

/**

 设备运营商信息

 @return 中国——移动

 */

+(NSString*)carrieroperator{

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

    CTCarrier *carrier = [info subscriberCellularProvider];

    //当前手机所属运营商名称

    NSString*mobileCarrier;

    //先判断有没有SIM卡,如果没有则不获取本机运营商

    if(!carrier.isoCountryCode) {

        mobileCarrier =@"无运营商";

    }else{

        mobileCarrier = [carriercarrierName];

    }

    if([mobileCarrierisEqualToString:@"无运营商"]) {

        return@"0";

    }elseif([mobileCarriercontainsString:@"移动"]){

        return@"1";

    }elseif([mobileCarriercontainsString:@"联通"]){

        return@"2";

    }elseif([mobileCarriercontainsString:@"电信"]){

        return@"3";

    }else{

        return@"0";

    }

}

+(NSString*)deveiceSoultion{

    CGRect rect = [UIScreen mainScreen].bounds;

    CGSizesize = rect.size;

    CGFloat scale = [UIScreen mainScreen].scale;

    CGFloatwidth = size.width*scale;

    CGFloatheight = size.height*scale;

    return [NSString stringWithFormat:@"%.f * %.f",width,height];

}

+(NSString*)currentNetWorkState{

    Reachability*reachability  = [Reachability reachabilityWithHostName:@"www.apple.com"];

    NetworkStatus internetStatus = [reachability currentReachabilityStatus];

    NSString*net =@"WIFI";

    switch(internetStatus) {

        case ReachableViaWiFi:

            net =@"wifi";

            break;

        case ReachableViaWWAN:

            net = [[selfclass]getNetType];  //判断具体类型

            break;

        case NotReachable:

            net =@"无网络";

        default:

            break;

    }

    if([netisEqualToString:@"无网络"]) {// 无网络

        return@"0";

    }elseif([netisEqualToString:@"wifi"]){// Wi-Fi

        return@"1";

    }elseif([netisEqualToString:@"2G"]){  // 2G

        return@"2";

    }elseif([netisEqualToString:@"3G"]){  // 3G

        return@"3";

    }elseif([netisEqualToString:@"4G"]){  // 4G

        return@"4";

    }else{                                    // 手机自带其他网络

        return@"5";

    }

}

+ (NSString*)getNetType

{

    NSString*netconnType =@"";

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

    }

    returnnetconnType;

}

相关文章

网友评论

      本文标题:《iOS开发常用的一些与设备相关的基础API》

      本文链接:https://www.haomeiwen.com/subject/tcvloftx.html