#include <sys/types.h>
#include <sys/sysctl.h>
//獲得設備型號
+ (NSString *)getCurrentDeviceModel
{int mib[2];size_t len;char *machine;mib[0] = CTL_HW;mib[1] = HW_MACHINE;sysctl(mib, 2, NULL, &len, NULL, 0);machine = malloc(len);sysctl(mib, 2, machine, &len, NULL, 0);NSString *platform = [NSString stringWithCString:machine encoding:NSASCIIStringEncoding];free(machine);// iPhoneif ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone2G";if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone3G";if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone3GS";if ([platform isEqualToString:@"iPhone3,1"]) return @"iPhone4";if ([platform isEqualToString:@"iPhone3,2"]) return @"iPhone4";if ([platform isEqualToString:@"iPhone3,3"]) return @"iPhone4";if ([platform isEqualToString:@"iPhone4,1"]) return @"iPhone4S";if ([platform isEqualToString:@"iPhone5,1"]) return @"iPhone5";if ([platform isEqualToString:@"iPhone5,2"]) return @"iPhone5";if ([platform isEqualToString:@"iPhone5,3"]) return @"iPhone5c";if ([platform isEqualToString:@"iPhone5,4"]) return @"iPhone5c";if ([platform isEqualToString:@"iPhone6,1"]) return @"iPhone5s";if ([platform isEqualToString:@"iPhone6,2"]) return @"iPhone5s";if ([platform isEqualToString:@"iPhone7,2"]) return @"iPhone6";if ([platform isEqualToString:@"iPhone7,1"]) return @"iPhone6Plus";if ([platform isEqualToString:@"iPhone8,1"]) return @"iPhone6s";if ([platform isEqualToString:@"iPhone8,2"]) return @"iPhone6sPlus";if ([platform isEqualToString:@"iPhone8,3"]) return @"iPhoneSE";if ([platform isEqualToString:@"iPhone8,4"]) return @"iPhoneSE";if ([platform isEqualToString:@"iPhone9,1"]) return @"iPhone7";if ([platform isEqualToString:@"iPhone9,2"]) return @"iPhone7Plus";//iPod Touchif ([platform isEqualToString:@"iPod1,1"]) return @"iPodTouch";if ([platform isEqualToString:@"iPod2,1"]) return @"iPodTouch2G";if ([platform isEqualToString:@"iPod3,1"]) return @"iPodTouch3G";if ([platform isEqualToString:@"iPod4,1"]) return @"iPodTouch4G";if ([platform isEqualToString:@"iPod5,1"]) return @"iPodTouch5G";if ([platform isEqualToString:@"iPod7,1"]) return @"iPodTouch6G";//iPadif ([platform isEqualToString:@"iPad1,1"]) return @"iPad";if ([platform isEqualToString:@"iPad2,1"]) return @"iPad2";if ([platform isEqualToString:@"iPad2,2"]) return @"iPad2";if ([platform isEqualToString:@"iPad2,3"]) return @"iPad2";if ([platform isEqualToString:@"iPad2,4"]) return @"iPad2";if ([platform isEqualToString:@"iPad3,1"]) return @"iPad3";if ([platform isEqualToString:@"iPad3,2"]) return @"iPad3";if ([platform isEqualToString:@"iPad3,3"]) return @"iPad3";if ([platform isEqualToString:@"iPad3,4"]) return @"iPad4";if ([platform isEqualToString:@"iPad3,5"]) return @"iPad4";if ([platform isEqualToString:@"iPad3,6"]) return @"iPad4";//iPad Airif ([platform isEqualToString:@"iPad4,1"]) return @"iPadAir";if ([platform isEqualToString:@"iPad4,2"]) return @"iPadAir";if ([platform isEqualToString:@"iPad4,3"]) return @"iPadAir";if ([platform isEqualToString:@"iPad5,3"]) return @"iPadAir2";if ([platform isEqualToString:@"iPad5,4"]) return @"iPadAir2";//iPad miniif ([platform isEqualToString:@"iPad2,5"]) return @"iPadmini1G";if ([platform isEqualToString:@"iPad2,6"]) return @"iPadmini1G";if ([platform isEqualToString:@"iPad2,7"]) return @"iPadmini1G";if ([platform isEqualToString:@"iPad4,4"]) return @"iPadmini2";if ([platform isEqualToString:@"iPad4,5"]) return @"iPadmini2";if ([platform isEqualToString:@"iPad4,6"]) return @"iPadmini2";if ([platform isEqualToString:@"iPad4,7"]) return @"iPadmini3";if ([platform isEqualToString:@"iPad4,8"]) return @"iPadmini3";if ([platform isEqualToString:@"iPad4,9"]) return @"iPadmini3";if ([platform isEqualToString:@"iPad5,1"]) return @"iPadmini4";if ([platform isEqualToString:@"iPad5,2"]) return @"iPadmini4";if ([platform isEqualToString:@"i386"]) return @"iPhoneSimulator";if ([platform isEqualToString:@"x86_64"]) return @"iPhoneSimulator";return platform;
}
獲取設備信息總結
1、獲取設備的信息
2、獲取設備的唯一標示符
3、為系統創建一個隨機的標示符
4、獲取當前屏幕分辨率的信息
5、獲取運營商的信息
需要先導入頭文件
創建對象
獲取運行商的名稱
獲取當前網絡的類型
ios7之后可以按照以下方式獲取。方便而且類型多
類型有以下:
ios7之前的話apple給我們提供了Reachability來獲取。
首先要導入SystemConfiguration.framework,把下載下來的Reachability.h和Reachability.m加進項目中
http://blog.csdn.net/qijianli/article/details/19922653?這個博客還說了其它的方法,不過因為是調用私有API,所以沒有采用。
6、獲取當前信號的強弱
這個貌似沒有給出官方的api,但是網上有人說可以用私有的api實現,但是通不過appStore的審核,方法如下:
利用linux下動態庫顯式調用api的函數。先包含頭文件?#import <dlfcn.h>
7、設備震動
需要加入AudioToolbox framework,導入頭文件 #import <AudioToolbox/AudioToolbox.h>
在需要震動的地方添加代碼:
但是貌似這個不支持傳入震動時間和模式,自己去控制吧。
8、獲取電池的相關信息
9、app中打開一個網頁
這個比較簡單,直接用提供的接口openURL即可。
10、app中打開另一個app
打開另一個app還是可以通過openURL來實現。但是要分兩種情況。第一種是啟動內置的應用,一般的電話,瀏覽器,短信和
郵件可以直接調用并添加參數,譬如
第二種情況是要打開自己開發的app,這種情況則要為將要打開的app注冊一個URL協議。這個可以在項目的文件info.plist中注冊。主要操作為:?
Step1. 右鍵,選擇“Add Row”
Step2. Key值選擇“URL types”
Step3. 打開“Item 0″,然后為該key增加一個URL identifier。可以是任何值,但建議用“反域名”(例如 “com.fcplayer.testHello”)。
Step4. 在“Item 0”下再加一行。
Step5. 選擇“URL Schemes” 作為Key。
Step6. 輸入你的URL協議名 (例如“testHello://” 應寫做“testHello”)。如果有必要,你可以在這里加入多個協議。
其實在打開的時候只需要URL Schemes即可,URL identifier是可選項。如果需要傳送參數,可以在URL Schemes://添加你的參數,格式和網頁開發的傳遞參數差不多。(又或者URL Schemes://URL identifier@添加的參數)關鍵是要和接收參數方定義好處理的方式。然后在需要打開的地方添加代碼:
(如有錯誤,請不吝指正,謝謝)