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;  
    }  
  • 相关阅读:
    ejs不能读取js变量??????
    技术架构
    测试框架那些事儿
    如何跨团队带项目?
    自定义网址导航站-聚享导航
    vue+node+mongodb前后端分离博客系统
    聚享导航chrome插件发布
    NuxtJS实战,一个博客系统
    Essay3.0发布,基于JavaScript的前后端同构博客系统
    小程序开发中的一些坑和技巧
  • 原文地址:https://www.cnblogs.com/machealking/p/4635511.html
Copyright © 2011-2022 走看看