zoukankan      html  css  js  c++  java
  • 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;  
    }  
  • 相关阅读:
    TreeView设置节点图标
    DELPHI 重命名文件名时 文件存在自动重命名
    ExtractNewFolderPath
    Delphi 记事本 TMemo
    Memo打印1
    Windows10和CentOS7双系统安装的一些小技巧
    正则表达式总结
    Java_得到GET和POST请求URL和参数列表
    【Restful】三分钟彻底了解Restful最佳实践
    Win7下U盘安装CentOS-7-x86_64-DVD-1503-01
  • 原文地址:https://www.cnblogs.com/machealking/p/4635511.html
Copyright © 2011-2022 走看看