iPhone开发技巧之私有API — 设备相关信息
2015-01-24 01:20
309 查看
使用这些API是要冒一些风险的,一是不会通过 App Stroe 的审核,二是以后比一定还能在高版本的SDK中使用。所以使用之前,三思而行。
先总结一些与设备相关的API。
可以在这里下载NetworkController.h,
或者使用你自己dump的版本。使用如下:
除了使用Xcode将Framework加入工程,你也可以使用下面的方法,在程序中动态加载,比如取得IMEI的例子:
先总结一些与设备相关的API。
IMEI
可以在这里下载NetworkController.h,或者使用你自己dump的版本。使用如下:
1 2 3 4 5 6 7 8 | <span class="preprocessor" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(250, 128, 114); background-color: transparent;">#import</span> <span class="string" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(255, 160, 122); background-color: transparent;">"NetworkController.h"</span> <span class="comment-delimiter" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(173, 216, 230); background-color: transparent;">// </span><span class="comment" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(173, 216, 230); background-color: transparent;">获得IMEI </span><span class="comment-delimiter" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(173, 216, 230); background-color: transparent;">// </span><span class="comment" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(173, 216, 230); background-color: transparent;">需要 Message.framework </span>+ (<span class="type" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(154, 205, 50); font-weight: bold; background-color: transparent;">NSString</span>*) <span class="function-name" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(127, 255, 212); background-color: transparent;">getDeviceIMEI</span> { <span class="type" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(154, 205, 50); font-weight: bold; background-color: transparent;">NetworkController</span> *<span class="variable-name" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(127, 255, 212); font-weight: bold; background-color: transparent;">ntc</span> = [<span class="type" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(154, 205, 50); font-weight: bold; background-color: transparent;">NetworkController</span> sharedInstance]; <span class="keyword" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(250, 128, 114); font-weight: bold; background-color: transparent;">return</span> [ntc IMEI]; } |
IMSI
1 2 3 4 5 6 7 | <span class="comment-delimiter" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(173, 216, 230); background-color: transparent;">// </span><span class="comment" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(173, 216, 230); background-color: transparent;">需要 CoreTelephony framework </span><span class="comment-delimiter" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(173, 216, 230); background-color: transparent;">// </span><span class="comment" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(173, 216, 230); background-color: transparent;">在文件开头加入 </span><span class="keyword" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(250, 128, 114); font-weight: bold; background-color: transparent;">extern</span> <span class="type" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(154, 205, 50); font-weight: bold; background-color: transparent;">NSString</span>* <span class="function-name" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(127, 255, 212); background-color: transparent;">CTSIMSupportCopyMobileSubscriberIdentity</span>(); + (<span class="type" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(154, 205, 50); font-weight: bold; background-color: transparent;">NSString</span>*) <span class="function-name" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(127, 255, 212); background-color: transparent;">getDeviceIMSI</span> { <span class="keyword" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(250, 128, 114); font-weight: bold; background-color: transparent;">return</span> CTSIMSupportCopyMobileSubscriberIdentity(); } |
本机电话号码
1 2 3 4 5 6 7 | <span class="comment-delimiter" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(173, 216, 230); background-color: transparent;">// </span><span class="comment" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(173, 216, 230); background-color: transparent;">需要 CoreTelephony framework </span><span class="comment-delimiter" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(173, 216, 230); background-color: transparent;">// </span><span class="comment" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(173, 216, 230); background-color: transparent;">在文件开头加入 </span><span class="keyword" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(250, 128, 114); font-weight: bold; background-color: transparent;">extern</span> <span class="type" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(154, 205, 50); font-weight: bold; background-color: transparent;">NSString</span>* <span class="function-name" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(127, 255, 212); background-color: transparent;">CTSettingCopyMyPhoneNumber</span>(); + (<span class="type" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(154, 205, 50); font-weight: bold; background-color: transparent;">NSString</span>*) <span class="function-name" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(127, 255, 212); background-color: transparent;">getPhoneCodeByCT</span> { <span class="keyword" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(250, 128, 114); font-weight: bold; background-color: transparent;">return</span> CTSettingCopyMyPhoneNumber(); } |
动态加载Framework
除了使用Xcode将Framework加入工程,你也可以使用下面的方法,在程序中动态加载,比如取得IMEI的例子:1 2 3 4 5 6 7 | <span class="type" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(154, 205, 50); font-weight: bold; background-color: transparent;">NSString</span>* <span class="variable-name" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(127, 255, 212); font-weight: bold; background-color: transparent;">sdk_path</span> = @<span class="string" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(255, 160, 122); background-color: transparent;">"/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator${IPHONE_SDK}.sdk/System/Library/PrivateFrameworks"</span>; <span class="type" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(154, 205, 50); font-weight: bold; background-color: transparent;">NSBundle</span> *<span class="variable-name" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(127, 255, 212); font-weight: bold; background-color: transparent;">b</span> = [<span class="type" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(154, 205, 50); font-weight: bold; background-color: transparent;">NSBundle</span> bundleWithPath:[<span class="type" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(154, 205, 50); font-weight: bold; background-color: transparent;">NSString</span> stringWithFormat:@<span class="string" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(255, 160, 122); background-color: transparent;">"%@/Message.framework"</span>, sdk_path]]; <span class="keyword" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(250, 128, 114); font-weight: bold; background-color: transparent;">if</span> ([b load]) { <span class="type" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(154, 205, 50); font-weight: bold; background-color: transparent;">Class</span> <span class="variable-name" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(127, 255, 212); font-weight: bold; background-color: transparent;">NetworkController</span> = NSClassFromString(@<span class="string" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(255, 160, 122); background-color: transparent;">"NetworkController"</span>); <span class="type" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(154, 205, 50); font-weight: bold; background-color: transparent;">id</span> <span class="variable-name" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(127, 255, 212); font-weight: bold; background-color: transparent;">nc</span> = [<span class="type" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(154, 205, 50); font-weight: bold; background-color: transparent;">NetworkController</span> sharedInstance]; NSLog(@<span class="string" style="border: 0px; outline: 0px; vertical-align: baseline; margin: 0px; padding: 0px; color: rgb(255, 160, 122); background-color: transparent;">"-- IMEI: %@"</span>, [nc IMEI]); } |
相关文章推荐
- 转:iPhone开发技巧之私有API(1) — 设备相关信息
- iPhone开发技巧之私有API(1) --- 设备相关信息
- iPhone开发技巧之私有API — 设备相关信息
- iPhone开发技巧之私有API --- 设备相关信息
- iPhone开发技巧之私有API(2)--- UITableView
- iPhone开发技巧之私有API(3)--- UIButton
- iPhone开发技巧之私有API(2)--- UITableView
- iPhone开发技巧之私有API--- UIBarButtonItem
- iPhone开发技巧之私有API(4)— UIBarButtonItem
- iPhone开发技巧之私有API--- UIApplication
- iPhone开发技巧之私有API(5)--- UISegmentedControl
- iPhone开发技巧之私有API(7)--- 用UIWebView访问BASIC认证的页面
- iPhone开发技巧之私有API--- UISegmentedControl
- iPhone开发技巧之私有API(2)— UITableView
- iPhone开发技巧之私有API--- UIBarButtonItem
- iPhone开发技巧之私有API--- UIBarButtonItem
- iPhone开发技巧之私有API--- UITableView
- iPhone开发技巧之私有API(6)--- 设置UIWebView中的User-Agent
- iPhone开发技巧之私有API(4)--- UIBarButtonItem
- iPhone开发技巧之私有API