有时我们在 App 中提交一些统计信息或者用户反馈信息时,为了能更好地进行分析,通常会附带上当前应用程序的名称、版本号、设备型号、以及设备系统版本。

这一篇主要是记录一些自己遇到过或已知的方法,纯水文,没什么好讲的,直接展示代码:

//获取设备名称

let deviceName = UIDevice.current.name

print("deviceName:\(deviceName)")

//获取系统名称

let sysName = UIDevice.current.systemName

print("sysName:\(sysName)")

//获取系统版本

let sysVersion = UIDevice.current.systemVersion

print("sysVersion:\(sysVersion)")

//获取设备唯一标识符

let deviceUUID = UIDevice.current.identifierForVendor?.uuidString

print("deviceUUID:\(deviceUUID!)")

//获取设备的型号

let deviceModel = UIDevice.current.model

print("deviceModel:\(deviceModel)")

//电池电量

//UIDevice.current.isBatteryMonitoringEnabled 方法必须使用

UIDevice.current.isBatteryMonitoringEnabled = true

let batteryLevel = UIDevice.current.batteryLevel

print("batteryLevel:\(batteryLevel)")

//电池状态

let batteryState = UIDevice.current.batteryState

switch batteryState {

case .unknown: print("未识别")

case .charging: print("充电中")

case .full: print("充满状态")

case .unplugged: print("非充电状态")

}

UIDevice.current.isBatteryMonitoringEnabled = false

let infoDictionary = Bundle.main.infoDictionary!

//app版本号

if let appVersion = infoDictionary["CFBundleVersion"]{

print("appVersion:\(appVersion)")

}

//app名称

if let appName = infoDictionary["CFBundleDisplayName"]{

print("appName:\(appName)")

}

//主程序版本号

if let shortVersion = infoDictionary["CFBundleShortVersionString"]{

print("shortVersion:\(shortVersion)")

}

获取手机具体型号:

extension UIDevice{

var deviceName: String{

var systemInfo = utsname()

uname(&systemInfo)

let platform = withUnsafePointer(to: &systemInfo.machine.0) { ptr in

return String(cString: ptr)

}

switch platform {

case "iPhone3,1", "iPhone3,2", "iPhone3,3": return "iPhone 4"

case "iPhone4,1": return "iPhone 4s"

case "iPhone5,1": return "iPhone 5"

case "iPhone5,2": return "iPhone 5 (GSM+CDMA)"

case "iPhone5,3": return "iPhone 5c (GSM)"

case "iPhone5,4": return "iPhone 5c (GSM+CDMA)"

case "iPhone6,1": return "iPhone 5s (GSM)"

case "iPhone6,2": return "iPhone 5s (GSM+CDMA)"

case "iPhone7,2": return "iPhone 6"

case "iPhone7,1": return "iPhone 6 Plus"

case "iPhone8,1": return "iPhone 6s"

case "iPhone8,2": return "iPhone 6s Plus"

case "iPhone8,4": return "iPhone SE"

case "iPhone9,1": return "国行、日版、港行iPhone 7"

case "iPhone9,2": return "港行、国行iPhone 7 Plus"

case "iPhone9,3": return "美版、台版iPhone 7"

case "iPhone9,4": return "美版、台版iPhone 7 Plus"

case "iPhone10,1", "iPhone10,4": return "iPhone 8"

case "iPhone10,2", "iPhone10,5": return "iPhone 8 Plus"

case "iPhone10,3", "iPhone10,6": return "iPhone X"

case "iPhone11,2": return "iPhone XS"

case "iPhone11,4", "iPhone11,6": return "iPhone XS MAX"

case "iPhone11,8": return "iPhone XR"

case "iPad1,1": return "iPad"

case "iPad1,2": return "iPad 3G"

case "iPad2,1", "iPad2,2", "iPad2,3", "iPad2,4": return "iPad 2"

case "iPad2,5", "iPad2,6", "iPad2,7": return "iPad Mini"

case "iPad3,1", "iPad3,2", "iPad3,3": return "iPad 3"

case "iPad3,4", "iPad3,5", "iPad3,6": return "iPad 4"

case "iPad4,1", "iPad4,2", "iPad4,3": return "iPad Air"

case "iPad4,4", "iPad4,5", "iPad4,6": return "iPad Mini 2"

case "iPad4,7", "iPad4,8", "iPad4,9": return "iPad Mini 3"

case "iPad5,1", "iPad5,2": return "iPad Mini 4"

case "iPad5,3", "iPad5,4": return "iPad Air 2"

case "iPad6,3", "iPad6,4": return "iPad Pro 9.7"

case "iPad6,7", "iPad6,8": return "iPad Pro 12.9"

case "iPad6,11", "iPad6,12": return "iPad 5"

case "iPad7,1", "iPad7,2": return "iPad Pro 12.9-inch 2nd-gen"

case "iPad7,3", "iPad7,4": return "iPad Pro 10.5"

case "iPad7,5", "iPad7,6": return "iPad 6"

case "AppleTV2,1": return "Apple TV 2"

case "AppleTV3,1", "AppleTV3,2": return "Apple TV 3"

case "AppleTV5,3": return "Apple TV 4"

case "i386", "x86_64": return "Simulator"

case "iPod1,1": return "iPod Touch 1"

case "iPod2,1": return "iPod Touch 2"

case "iPod3,1": return "iPod Touch 3"

case "iPod4,1": return "iPod Touch 4"

case "iPod5,1": return "iPod Touch (5 Gen)"

case "iPod7,1": return "iPod Touch 6"

default: return platform

}

}

}

直接使用

UIDevice.current.deviceName

还有一些方法没有记下,日后遇到再补上。

swift获取openuuid_Swift 获取应用相关信息相关推荐

  1. 获取access中表的相关信息

    就用到两条.net自带的获取数据库信息的语句 OleDbConnection con = new OleDbConnection(connection); // OleDB数据库连接实例 // 获取数 ...

  2. Android 屏幕适配攻略(四)获取手机屏幕的相关信息 与动态设置控件的大小

    Android 屏幕适配攻略(四)获取手机屏幕的相关信息 与动态设置控件的大小 1 动态获取手机屏幕的 屏幕密度与对应像素比例 例如在 320 * 480 尺寸为 3.2 英寸的手机 ,对应的像素密度 ...

  3. android获取到电信的手机号码,Android基站信息获取以及Sim卡相关信息获取

    概述: 本篇主要介绍Android获取基站信息的方式,除此之外,还有SIM卡相关字段获取,先介绍一些缩写的概念,后续更新代码的写法. 前言:之前有碰到一个需求,需要获取SIM卡的相关属性:IMSI号. ...

  4. java获取usb设备的相关信息

    我从上上个礼拜开始接触,公司需要,所以开始在网上搜索相关资料,但是都没有找到合适的范例,但万幸终于测试出合适的代码. import java.io.UnsupportedEncodingExcepti ...

  5. SQL-根据各人员上下级关系,得到各人员分别处于几级单位,并获取各人员的相关信息

    1.数据表: 现在有一个表,也就是oracle数据库中scott用户下的emp表. 2.需求:如果KING是一级人员,那么其他人分别是几级人员?并获取每个人对应的上级的姓名及工资情况. 3.分析及解答 ...

  6. snmpwalk获取网络设备OID及相关信息

    snmpwalk使用详解 安装使用 获取snmp v1信息(已基本弃用) 获取snmp v2信息 获取snmp v3信息 常用OID 参考: https://www.cnblogs.com/–smil ...

  7. C++ wlanapi获取wifi列表与相关信息(ssid,密码开启,信号强度,bssidmac等)

    缘由: 最近在写一个涉及到wifi的工具.之前找到的源码是linux下的,而且充斥着黑科技(底层了,用socket的混淆模式去抓包然后分析,看的头大),想找到一些写好的接口,在收集信息后知道有个能用的 ...

  8. 【转载】通过SQL获取MSSQL的数据库相关信息收藏

    http://blog.csdn.net/lxbin/archive/2008/06/25/2586007.aspx --得到数据库中所有的表    SELECT SysObjects.name AS ...

  9. muduo:获取进程相关信息

    muduo里面有专门获取进程信息的类,记录一下. // Use of this source code is governed by a BSD-style license // that can b ...

最新文章

  1. API Monitor(API监控工具)
  2. iOS开发打电话的功能
  3. c++中同名函数的三个不同术语(c++细节篇八)
  4. Golang之gjson
  5. weblogic服务器修改ip,修改weblogic服务器ip地址
  6. c语言 统计数量用count_请问c语言当中,如何统计数字各自出现的次数
  7. BootStrap入门教程 (二)
  8. python入门——P40类和对象:一些相关的BIF
  9. 【python】六一新玩法turtle画哆啦A梦
  10. 资深Web技术专家曹刘阳:2016年前端技术观察
  11. 条件概率,乘法定理 (概统1)
  12. 使用Jsch执行Shell脚本
  13. 无图片CSS圆角的五个实例
  14. 学长毕业日记 :本科毕业论文写成博士论文的神操作20170315
  15. 调试H5页面-weinre及spy-debugger真机调试
  16. opencv-python错误:size.width0 size.height0 in function 'cv::imshow' 的解决方案
  17. 传iPhone5和iPhone4s将同时发布
  18. 2022个人推荐好书
  19. 【配送路径规划】基于matlab蚁群优化节约算法单中心多城市配送车辆路径规划【含Matlab源码 017期】
  20. autohotkey 常见代码段

热门文章

  1. Linux学习整理-网络命令集
  2. 小白看完都学会了!Android跨进程通信导论,附答案
  3. 我的Java学习之路(第二十天)------ 总结常见的数组异常(越界与空指针)
  4. 黑苹果hd630显存7m_黑苹果显存只有5mb_动漫台
  5. 蓝牙耳机被网页播放器关闭问题
  6. 回收站不见了解决方案
  7. excel输入值非法,限定了可以输入的数值怎么办
  8. 苹果手机和电脑怎么录屏?详细教程来了!
  9. 22-07-23周总结
  10. 小米千元5G手机机即将到来,或助推四季度销量创新高