有些APP設計的用戶提交意見建議或者投訴信息是通過接口返回服務器,而有些設計的是通過郵件雏婶」担或者程序在執(zhí)行某些特定操作的時候,我們希望APP自動反饋回來一些有利于我們優(yōu)化或者解決問題的信息菠红。
不管是哪種情況哪種方式第岖,在獲取到用戶信息的時候我們通常還希望獲取到用戶手機的一些信息。
從UIDevice里面我們可以獲取到不少設備方面的內(nèi)容试溯。
比如設備類型蔑滓,系統(tǒng)版本,電池狀態(tài)遇绞,屏幕狀態(tài)等等等等键袱。
下圖是用模擬器運行了一些參數(shù)的顯示結(jié)果
其中設備方向和電池狀態(tài)是枚舉,有如下幾種
UIDeviceOrientationUnknown,
UIDeviceOrientationPortrait, // 豎屏摹闽,Home按鍵在下
UIDeviceOrientationPortraitUpsideDown, // 豎屏蹄咖,Home按鍵在上
UIDeviceOrientationLandscapeLeft, // 橫屏,Home按鍵在右
UIDeviceOrientationLandscapeRight, // 橫屏付鹿,Home按鍵在左
UIDeviceOrientationFaceUp, // 屏幕面朝上
UIDeviceOrientationFaceDown // 屏幕面朝下
UIDeviceBatteryStateUnknown, // 未知狀態(tài)
UIDeviceBatteryStateUnplugged, // 電池使用中(未充電)
UIDeviceBatteryStateCharging, // 連接充電器澜汤,電量沒達到100%
UIDeviceBatteryStateFull, // 連接充電器,電量達到100%
如果需要監(jiān)控電池狀態(tài)需要將batteryMonitoringEnabled
設置為YES舵匾,默認是NO俊抵。
常用參數(shù)獲取方式如下:
// 設備名稱 iPhone iPad iWatch...
NSString * name = [UIDevice currentDevice].name;
// 設備模型
NSString * model = [UIDevice currentDevice].model;
// 本地版本
NSString * localizedModel = [UIDevice currentDevice].localizedModel;
// 系統(tǒng)名稱
NSString * systemName = [UIDevice currentDevice].systemName;
// 系統(tǒng)版本
NSString * systemVersion = [UIDevice currentDevice].systemVersion;
// 方向
int orientation = [UIDevice currentDevice].orientation;
// 設備標識符UUID
NSUUID * uuid = [UIDevice currentDevice].identifierForVendor;
NSString * uuidStr = uuid.UUIDString;
// 電池狀態(tài)
int batteryState = [UIDevice currentDevice].batteryState;
// 電池電量 0~1 -1表示未知
float batteryLevel = [UIDevice currentDevice].batteryLevel;
除此之外,UIDevice還提供了4個通知用的Key
UIDeviceOrientationDidChangeNotification // 設備方向
UIDeviceBatteryStateDidChangeNotification // 電池狀態(tài)
UIDeviceBatteryLevelDidChangeNotification // 電池電量
UIDeviceProximityStateDidChangeNotification // 接近狀態(tài)
接近狀態(tài)坐梯,就是比如用戶接打電話時候靠近和離開手機屏幕的狀態(tài)變化徽诲。