首页 > 代码库 > IOS获取设备信息

IOS获取设备信息

概要

IOS获取设备信息一般是通过UIDevice,UIScreen,NSBundle,NSLocal等方式,如果说要获取设备的内存、处理器信息,似乎可以依照Unix获取类似信息方式。

UIDevice提供了多种属性、类函数及状态通知,包括检测电池电量和定位设备与临近感应,UIDevice所做的工作就是为应用程序提供用户及设备的一些信息。UIDevice类还能够收集关于设备的各种具体细节,例如机型及iOS版本等。其中大部分属性都对开发工作具有积极的辅助作用


代码示例

- (void) getDeviceInfo
{
    UIDevice* curDev = [UIDevice currentDevice];
    
    /** 设备系统信息*/
    
    // 设备名称
    NSLog(@"\tname        : %@", curDev.name);
    // 设备模式
    NSLog(@"\tmodel       : %@", curDev.model);
    // 设备本地模式
    NSLog(@"\tlocalize    : %@", curDev.localizedModel);
    // 系统名称
    NSLog(@"\tos name     : %@", curDev.systemName);
    // 系统版本号
    NSLog(@"\tos version  : %@", curDev.systemVersion);
    // 设备类别:手机,平板电脑
    switch (curDev.userInterfaceIdiom)
    {
        case UIUserInterfaceIdiomPhone:
            NSLog(@"\tIdiom       : iPhone");
            break;
        case UIUserInterfaceIdiomPad:
            NSLog(@"\tIdiom       : iPad");
            break;
            
        default:
            NSLog(@"\tIdiom       : Unknow");
            break;
    }
    // 设备唯一标识
    NSLog(@"\tUUID        : %@", curDev.identifierForVendor.UUIDString);
    
    /** 设备方向 */
    // 设备朝向
    switch (curDev.orientation)
    {
        case UIDeviceOrientationPortrait:
            NSLog(@"\torientation : Portrait");
            break;
        case UIDeviceOrientationPortraitUpsideDown:
            NSLog(@"\torientation : upside down");
            break;
        case UIDeviceOrientationLandscapeLeft:
            NSLog(@"\torientation : left");
            break;
        case UIDeviceOrientationLandscapeRight:
            NSLog(@"\torientation : right");
            break;
        case UIDeviceOrientationFaceUp:
            NSLog(@"\torientation : face up");
            break;
        case UIDeviceOrientationFaceDown:
            NSLog(@"\torientation : face down");
            break;
        default:
            NSLog(@"\torientation : Unknow");
            break;
    }
    
    UIScreen* mainScreen = [UIScreen mainScreen];
    // 屏幕尺寸
    NSLog(@"screen size : %.0fx%.0f", mainScreen.bounds.size.width, mainScreen.bounds.size.height);
    
    /** 设备电池 */
    NSLog(@"Battery infomation");
    
    // 电量
    NSLog(@"\tlevel       : %.2f%%", curDev.batteryLevel*100);
    switch (curDev.batteryState)
    {
        case UIDeviceBatteryStateUnplugged:
            NSLog(@"\tstate       : Unplugged");
            break;
        case UIDeviceBatteryStateCharging:
            NSLog(@"\tstate       : Charging");
            break;
        case UIDeviceBatteryStateFull:
            NSLog(@"\tstate       : Full");
            break;
        default:
            NSLog(@"\tstate       : Unknow");
            break;
    }
    
    // 电池监视器是否开启
    if( curDev.isBatteryMonitoringEnabled )
    {
        NSLog(@"\tmonitor on  : YES");
    }
    else
    {
        NSLog(@"\tmonitor on  : NO");
    }
    
    /** 体感器 */
    NSLog(@"Proximity Sensor infomation");
    if( curDev.proximityState )
    {
        NSLog(@"\tsensor on   : YES");
    }
    else
    {
        NSLog(@"\tsensor on   : NO");
    }
    if(curDev.proximityMonitoringEnabled)
    {
        NSLog(@"\tmonitor on  : YES");
    }
    else
    {
        NSLog(@"\tmonitor on  : NO");
    }
}

- (void) getBundleInfo
{
    NSBundle* bundle = [NSBundle mainBundle];
    NSDictionary* bundleInfo = [bundle infoDictionary];
    
    // 应用信息
    NSLog(@"%@", bundleInfo);
    
    /*
    CFBundleDevelopmentRegion = en;
    CFBundleExecutable = DeviceInfo;
    CFBundleIdentifier = "arbboter.com.DeviceInfo";
    CFBundleInfoDictionaryVersion = "6.0";
    CFBundleInfoPlistURL = "Info.plist -- file:///../DeviceInfo.app/";
    CFBundleName = DeviceInfo;
    CFBundleNumericVersion = 16809984;
    CFBundlePackageType = APPL;
    CFBundleShortVersionString = "1.0";
    CFBundleSignature = "????";
    CFBundleSupportedPlatforms =     (
                                      iPhoneSimulator
                                      );
    CFBundleVersion = 1;
    DTPlatformName = iphonesimulator;
    DTSDKName = "iphonesimulator8.1";
    LSRequiresIPhoneOS = 1;
    UIDeviceFamily =     (
                          1
                          );
    UILaunchStoryboardName = LaunchScreen;
    UIMainStoryboardFile = Main;
    UIRequiredDeviceCapabilities =     (
                                        armv7
                                        );
    UISupportedInterfaceOrientations =     (
                                            UIInterfaceOrientationPortrait,
                                            UIInterfaceOrientationLandscapeLeft,
                                            UIInterfaceOrientationLandscapeRight
                                            );
    */
}


IOS获取设备信息