iPhone开发技巧之私有API — 设备相关信息
来源:互联网 发布:阿里的数据平台 编辑:程序博客网 时间:2024/06/05 19:06
使用这些API是要冒一些风险的,一是不会通过 App Stroe 的审核,二是以后比一定还能在高版本的SDK中使用。所以使用之前,三思而行。
先总结一些与设备相关的API。
IMEI
可以在这里下载NetworkController.h, 或者使用你自己dump的版本。使用如下:
12345678
<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
1234567
<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();}
本机电话号码
1234567
<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的例子:
1234567
<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]);}
0 0
- iPhone开发技巧之私有API — 设备相关信息
- iPhone开发技巧之私有API — 设备相关信息
- iPhone开发技巧之私有API --- 设备相关信息
- 转:iPhone开发技巧之私有API(1) — 设备相关信息
- iPhone开发技巧之私有API(1) --- 设备相关信息
- iPhone开发技巧之私有API--- UIBarButtonItem
- iPhone开发技巧之私有API--- UISegmentedControl
- iPhone开发技巧之私有API--- UITableView
- iPhone开发技巧之私有API--- UIApplication
- iPhone开发技巧之私有API--- UIBarButtonItem
- iPhone开发技巧之私有API--- UIBarButtonItem
- iPhone开发技巧之私有API
- iPhone开发技巧之私有API--- UIBarButtonItem
- iPhone开发技巧之私有API(2)— UITableView
- iPhone开发技巧之私有API(2)--- UITableView
- iPhone开发技巧之私有API(3)--- UIButton
- iPhone开发技巧之私有API(4)--- UIBarButtonItem
- iPhone开发技巧之私有API(5)--- UISegmentedControl
- Hive的Python异步客户端
- html 5 读取本地文件API
- address book api 图型
- iOS on Rails- up and running
- 【Android文档】Android界面绘制流程--------How Android Draws Views
- iPhone开发技巧之私有API — 设备相关信息
- ORCL 错误收集
- iPhone开发技巧之私有API--- UIBarButtonItem
- UVa 10154 - Weights and Measures
- JavaScript Array 整理 - 元素操作
- nebula_level00
- Android 上传图片,服务器接收图片实现
- LinkedList源码分析
- UIViewController之间的传值方式二 通知