• ios 有关设备信息


      首先列出几个简单的信息

    #pragma makr- app版本
    -(NSString *)getVersionCode{
    
       NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
       return [infoDictionary objectForKey:@"CFBundleShortVersionString"];
    }
    #pragma mark-设备ID
    -(NSString *)getDeviceId{
    
        return [[UIDevice currentDevice].identifierForVendor UUIDString];
    }
    #pragma mark- app操作系统
    -(NSString *)getAppOs{
     
        return [[UIDevice currentDevice]systemVersion];
    }
    #pragma mark- 终端操作系统版本
    -(NSString *)getTerminalOs{
        CGFloat sysVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
        return [NSString stringWithFormat:@"%f",sysVersion];
    }
    #pragma mark- 终端型号
    -(NSString *)getDevModel{
     
        return [[UIDevice currentDevice]model];
    }
    

      获取网络类型的方法如下

    -(NSString *)getNetWorkStates{
        UIApplication *app = [UIApplication sharedApplication];
        NSArray *children = [[[app valueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]subviews];
        NSString *state = [[NSString alloc]init];
        
        int netType =0;
        //获取到网络返回码
        for (id childin in children) {
            if ([childin isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) {
                //获取到状态栏
                netType = [[childin valueForKeyPath:@"dataNetworkType"]intValue];
                
                switch (netType) {
                    case 0:
                        state = @"无网络";
                        //无网模式
                        break;
                    case 1:
                        state = @"2G";
                        break;
                    case 2:
                        state = @"3G";
                        break;
                    case  3:
                        state = @"4G";
                        break;
                    case 5:
                    {
                        state = @"WIFI";
                    }
                        break;
                    default:
                        break;
                }
            }
        }
        return state;
    }

    获取IP地址

    #pragma mark- 获取ip地址
    -(NSString *)deviceIPAdress {
        NSString *address = @"获取失败";
        struct ifaddrs *interfaces = NULL;
        struct ifaddrs *temp_addr = NULL;
        int success = 0;
        success = getifaddrs(&interfaces);
        if (success == 0) {
            // 0 表示获取成功
            temp_addr = interfaces;
            while (temp_addr != NULL) {
                if( temp_addr->ifa_addr->sa_family == AF_INET) {
    
                    if ([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) {
                    
                        address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)];
                    }
                }
                
                temp_addr = temp_addr->ifa_next;
            }
        }
        freeifaddrs(interfaces);
        return address;  
    }  
  • 相关阅读:
    python列表(包含列表方法)
    python数据类型和运算符
    python计算机初识
    python运行过程,变量,符号
    python·if语句
    python`while循环
    <select></select> php表单怎么传值
    thinkPhp3 空操作
    thinkphp3.1和3.2的<模板替换>的区别
    thinkphp3 空操作 如果为空会怎么样 empty name=""
  • 原文地址:https://www.cnblogs.com/machealking/p/4635511.html
Copyright © 2020-2023  润新知