代码设置飞行模式 ios iphone

原文: http://blogs.oreilly.com/iphone/2009/01/bring-airplane-mode-control-ba.html

代码比较老了。我试过了,在我的pad 4.3.3系统上不工作了。 主要是 
  int (*setAPMode)(mach_port_t* port, BOOL yorn) = 
         dlsym(sbserv, "SBSetAirplaneModeEnabled");
导出函数不成功,





#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];
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值