iOS SDK详解之UIDevice(系统版本,设备型号...)

本文详细介绍了iOS中UIDevice类的使用,包括获取设备的系统版本、设备型号、电池状态、设备旋转、是否支持多任务及播放输入声音等功能。通过UIDevice的API,开发者能轻松获取iPhone 5s设备的相关信息,并了解如何监听电池状态变化和设备方向改变的通知。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原创Blog,转载请注明出处
blog.youkuaiyun.com/hello_hwc
欢迎关注我的iOS SDK详解专栏
blog.youkuaiyun.com/column/details/huangwenchen-ios-sdk.html


前言:UIDevice是初学者很容易忽视的一个类。通过这个类的API可以很容易的获取到当前的设备信息,系统信息。没什么难度,本文会详细的阐述各个属性。


本文的输出值都是在我的iPhone 5s下的值


设备
设备名称
返回类型String

 let deviceName = UIDevice.currentDevice().name //***的iPhone

系统版本
返回类型String

 let systemName = UIDevice.currentDevice().systemName//iPhone OS
 let systemVersion = currentDevice.systemVersion// 8.3

设备型号
返回类型String

let deviceModel = UIDevice.currentDevice().model// iPhone
let localModel = UIDevice.currentDevice().localizedModel// iPhone

ipad/Iphone
返回类型UIUserInterfaceIdiom
有三种

enum UIUserInterfaceIdiom : Int {
    case Unspecified 
    case Phone //iPhone 和 iTouch
    case Pad //Ipad
}
let deviceType = UIDevice.currentDevice().userInterfaceIdiom//Phone

厂商
返回类型NSUUID!

 let vender = UIDevice.currentDevice().identifierForVendor

电池

剩余电量 -batteryLevel
返回float,0到1之间,1代表100%电量

电量的状态-batteryState
返回UIDeviceBatteryState

enum UIDeviceBatteryState : Int {
    case Unknown //未知
    case Unplugged//没有在充电
    case Charging//在充电
    case Full//满电
}

是否监听电量-batteryMonitoringEnabled
如果设为YES,则可以监听电量的变化和获取电量的状态。默认为NO

 UIDevice.currentDevice().batteryMonitoringEnabled = true
 let batteryLevel = UIDevice.currentDevice().batteryLevel//0.550000012
 let batteryState = UIDevice.currentDevice().batteryState//Charging

有两个notification可以订阅

  • UIDeviceBatteryStateDidChangeNotification
  • UIDeviceOrientationDidChangeNotification

设备旋转

注意,这里的是设备的物理方向,不是屏幕的方向
获取设备的物理方向-orientation
返回类型

enum UIDeviceOrientation : Int {
    case Unknown
    case Portrait
    case PortraitUpsideDown
    case LandscapeLeft
    case LandscapeRight
    case FaceUp
    case FaceDown
}

是否发送通知-generatesDeviceOrientationNotifications
如果是YES,那么设备方向改变了,会post这个通知UIDeviceOrientationDidChangeNotification 。当然这个通知也是可以订阅的。

注意,获取方向的时候要在这两个函数之间获取

 UIDevice.currentDevice().beginGeneratingDeviceOrientationNotifications()
        let orientation = UIDevice.currentDevice().orientation//Portrait       UIDevice.currentDevice().endGeneratingDeviceOrientationNotifications()

设备是否接近脸

proximityMonitoringEnabled
proximityState

是否支持多任务

multitaskingSupported

播放输入的声音

  playInputClick()

需要在自定义的输入view下这么做

  • 让自定义输入视图遵循UIInputViewAudioFeedback protocol
  • 实现方法enableInputClicksWhenVisible 并且返回true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值