MOBFDevice.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. //
  2. // MOBFDeviceUtils.h
  3. // MOBFoundation
  4. //
  5. // Created by vimfung on 15-1-19.
  6. // Copyright (c) 2015年 MOB. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <UIKit/UIKit.h>
  10. #import <CoreTelephony/CTTelephonyNetworkInfo.h>
  11. extern NSString *kMOBFReachabilityChangedNotification;
  12. /**
  13. * 网络类型
  14. */
  15. typedef NS_ENUM(NSUInteger, MOBFNetworkType)
  16. {
  17. /**
  18. * 无网咯
  19. */
  20. MOBFNetworkTypeNone = 0,
  21. /**
  22. * 蜂窝网络
  23. */
  24. MOBFNetworkTypeCellular = 2,
  25. /**
  26. * WIFI
  27. */
  28. MOBFNetworkTypeWifi = 1,
  29. /**
  30. * 2G网络
  31. */
  32. MOBFNetworkTypeCellular2G = 3,
  33. /**
  34. * 3G网络
  35. */
  36. MOBFNetworkTypeCellular3G = 4,
  37. /**
  38. * 4G网络
  39. */
  40. MOBFNetworkTypeCellular4G = 5,
  41. };
  42. /**
  43. IP版本
  44. - MOBFIPVersion4: IPv4
  45. - MOBFIPVersion6: IPv6
  46. */
  47. typedef NS_ENUM(NSUInteger, MOBFIPVersion)
  48. {
  49. MOBFIPVersion4 = 0,
  50. MOBFIPVersion6 = 1,
  51. };
  52. /**
  53. * 设备工具类
  54. */
  55. @interface MOBFDevice : NSObject
  56. /**
  57. * 获取单例的 CTTelephonyNetworkInfo
  58. *
  59. * @return CTTelephonyNetworkInfo
  60. */
  61. + (CTTelephonyNetworkInfo *)networkInfo;
  62. /**
  63. * 获取网卡物理地址
  64. *
  65. * @return 网卡物理地址
  66. */
  67. + (NSString *)macAddress;
  68. /**
  69. * 获取设备型号
  70. *
  71. * @return 设备型号
  72. */
  73. + (NSString *)deviceModel;
  74. /**
  75. * 获取当前网络类型
  76. *
  77. * @return 网络类型
  78. */
  79. + (MOBFNetworkType)currentNetworkType;
  80. /**
  81. * 获取当前网络类型字符串
  82. *
  83. * @return 网络类型
  84. */
  85. + (NSString *)currentNetworkTypeStr;
  86. /**
  87. * 获取手机运营商代码
  88. *
  89. * @return 手机运营商代码
  90. */
  91. + (NSString *)carrier;
  92. /**
  93. * 获取手机运营商名称
  94. *
  95. * @return 运营商名称
  96. */
  97. + (NSString *)carrierName;
  98. /**
  99. * 获取手机运营商国家码
  100. *
  101. * @return 运营商国家码
  102. */
  103. + (NSString *)mobileCountryCode;
  104. /**
  105. * 获取手机运营商网络编号
  106. *
  107. * @return 运营商网络编号
  108. */
  109. + (NSString *)mobileNetworkCode;
  110. /**
  111. * 与当前系统版本比较
  112. *
  113. * @param other 需要对比的版本
  114. *
  115. * @return < 0 低于指定版本; = 0 跟指定版本相同;> 0 高于指定版本
  116. */
  117. + (NSInteger)versionCompare:(NSString *)other;
  118. /**
  119. * 判断是否已经越狱
  120. *
  121. * @return YES 已经越狱,NO 尚未越狱
  122. */
  123. + (BOOL)hasJailBroken;
  124. /**
  125. * 获取运行进程信息
  126. *
  127. * @return 进程信息列表
  128. */
  129. + (NSArray *)runningProcesses;
  130. /**
  131. * 判断当前设备是否为iPad
  132. *
  133. * @return YES 是,NO 否
  134. */
  135. + (BOOL)isPad;
  136. /**
  137. * 获取设备唯一标识
  138. *
  139. * @return 标识码
  140. */
  141. + (NSString *)duid;
  142. /**
  143. * 获取屏幕真实尺寸
  144. *
  145. * @return 屏幕尺寸
  146. */
  147. + (CGSize)nativeScreenSize;
  148. /**
  149. * 获取无线局域网的服务集标识(WIFI名称)
  150. *
  151. * @return 服务集标识
  152. */
  153. + (NSString *)ssid;
  154. /**
  155. * 获取基础服务集标识(站点的MAC地址)
  156. *
  157. * @return 基础服务集标识
  158. */
  159. + (NSString *)bssid;
  160. /**
  161. * 获取当前语言
  162. *
  163. * @return 语言描述
  164. */
  165. + (NSString *)currentLanguage;
  166. /**
  167. * 获取设备IP地址
  168. *
  169. * @return IP地址
  170. */
  171. + (NSString *)ipAddress:(MOBFIPVersion)ver;
  172. /**
  173. * 获取开发商ID
  174. *
  175. * @return 开发商ID
  176. */
  177. + (NSString *)idfv;
  178. /**
  179. * 获取物理内存
  180. @return 物理内存
  181. */
  182. + (double)physicalMemory;
  183. /**
  184. * 获取存储大小
  185. @return 存储大小
  186. */
  187. + (long long)diskSpace;
  188. /**
  189. * cpu 类型
  190. *
  191. * @return cpu 类型
  192. */
  193. + (NSString *)cpuType;
  194. /**
  195. * 获取无线局域网的强度
  196. *
  197. * @return 强度 3: 强 ,2:中, 1:弱 ,无
  198. */
  199. + (int)wifiLevel;
  200. /**
  201. * 获取原始当前网络类型
  202. *
  203. * @return 网络类型
  204. */
  205. + (NSString *)currentDataNetworkType;
  206. @end