iphone中的SBSSpringBoardServerPort()函数
来源:互联网 发布:电脑视频美颜软件 编辑:程序博客网 时间:2024/06/10 18:21
有时候,我们的程序需要向springboard发送消息,这个可以用SpringBoardServices.framework库(这个是私有的库,有关这个库的介绍参见http://iphonedevwiki.net/index.php/SpringBoardServices.framework),网上的一般的方法是
#import <UIKit/UIKit.h>
#import <UIKit/UIApplication.h>
#include <dlfcn.h>
#include <stdio.h>
// Framework Paths
#define SBSERVPATH "/System/Library/PrivateFrameworks/SpringBoardServices.framework/SpringBoardServices"
#define UIKITPATH "/System/Library/Framework/UIKit.framework/UIKit"
int main(int argc, char **argv)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
//
// For testing try issuing the following:
// ap y; sleep 5; ./ap n
//
if (argc < 2)
{
printf("Usage: %s (y | n)/n", argv[0]);
exit(-1);
}
// Argument used to switch airplane mode off or on
BOOL yorn = [[[NSString stringWithCString:argv[1]]
uppercaseString] hasPrefix:@"Y"];
// Fetch the SpringBoard server port
mach_port_t *p;
void *uikit = dlopen(UIKITPATH, RTLD_LAZY);
int (*SBSSpringBoardServerPort)() =
dlsym(uikit, "SBSSpringBoardServerPort");
p = SBSSpringBoardServerPort();
dlclose(uikit);
// Link to SBSetAirplaneModeEnabled
void *sbserv = dlopen(SBSERVPATH, RTLD_LAZY);
int (*setAPMode)(mach_port_t* port, BOOL yorn) =
dlsym(sbserv, "SBSetAirplaneModeEnabled");
setAPMode(p, yorn);
dlclose(sbserv);
[pool release];
}
以上是通过动态加载的方式
其实也可以用另外一种方式
做法如下
1。用class-dump导出SpringBoardServices.framework库的头文件(比如导出3.0sdk的,class-dump -H /Developer/xcode_3_2_3/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/System/Library/PrivateFrameworks/SpringBoardServices.framework/SpringBoardServices -o ~/Desktop/springboard,对于此命令我就不解释了,各位看客可以自己google),在SpringBoardServices.framework下新建一个Headers目录,将刚导出的头文件放到Header目录下
进入你的程序,将SpringBoardServices.framework增加进来,
在你程序的最上方加上
extern "C" int SBSSpringBoardServerPort();
你就可以使用SBSSpringBoardServerPort();这个函数了,此函数很有用,当你想在你的程序中向springboard发送消息时,消息都需要一个参数mach_port_t变量,这个mach_port_t变量就是SBSSpringBoardServerPort();的返回值,至于能够发送那些消息给springboard,可以参见http://iphonedevwiki.net/index.php/SpringBoard.app/MIG_subsystem
- iphone中的SBSSpringBoardServerPort()函数
- objc_msgSend函数 iphone
- iphone sqlite函数小结
- objc_msgSend函数 iphone
- iphone CGBitmapContextCreate()函数解释
- iphone CGBitmapContextCreate()函数解释
- iPhone中的字体
- iphone中的正则表达式
- IPhone 开发中的错误
- iphone开发中的CALayer
- iPhone中的UITouch
- iphone中的UITouch
- iphone中的多线程
- iPhone中的剪切技巧
- iphone中的正则表达式
- Iphone中的UIView开发
- iphone中的Toast
- 获取Iphone中的联系人
- BW增强数据源
- Windows XP SP3系统下如何搭建android开发环境
- jquery验证前台表单
- 软件工程.软件质量控制,软件构架,软件开发综合经验谈
- Session机制
- iphone中的SBSSpringBoardServerPort()函数
- C#自定义WebBrowser控件,禁止下载显示图片
- FIND_IN_SET()
- HBase入门篇2
- 局域网构建
- C#类的访问性 类成员的访问修饰符
- 世界500强最爱的25个刁钻面试题
- linux和Uinx下的文件拆分工具split介绍
- 八大锦囊避开办公室人际漩涡