您的位置:首页 > 移动开发 > IOS开发

iOS使用privateframework开启蓝牙教程

2012-04-25 10:46 316 查看
有个项目需要研究非ios设备与ios设备的连接,之前了解到苹果的官方api是不支持这个操作的,于是便开始研究苹果的私有api。

在cc上也有很多帖子讨论过,但始终没什么实质性进展。

本人经过一番google,成功使用私有api开启了iphone的蓝牙。现在把方法分享出来,希望能给大家提供一些思路。

1.首先在/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/PrivateFrameworks路径下找到BluetoothManager.framework(如果我没估计错的话,里面只有一个库文件,没有头文件)

2.然后到http://iphone-dev.googlecode.com/svn/branches/include-1.2-sdk/include/BluetoothManager/上下载所需的头文件,手动添加到BluetoothManager.framework中,并建立一个Headers文件夹。

3.建立一个工程将以上路径下的BluetoothManager.framework添加到工程中

4.将以下代码添加到工程中。(注意:不需要引入BluetoothManager的头文件,否则会出现编译错误)

-(void)startBluetooth{

#if TARGET_IPHONE_SIMULATOR

exit( EXIT_SUCCESS ) ;

#else

/* this works in iOS 4.2.3 */

Class BluetoothManager = objc_getClass( "BluetoothManager" ) ;

id btCont = [BluetoothManager sharedInstance] ;

[self performSelector:@selector(toggle:) withObject:btCont afterDelay:1.0f] ;

#endif

}

#if TARGET_IPHONE_SIMULATOR

#else

- (void)toggle:(id)btCont

{

BOOL currentState = [btCont enabled] ;

[btCont setEnabled:!currentState] ;

[btCont setPowered:!currentState] ;

}

#endif

5.在真机上编译运行,会发现iphone的蓝牙成功开启。

但是,遗憾的是,目前我研究出来的只有开启蓝牙,关于设备匹配,数据传输方面没什么进展。

希望有人能再接再厉,在我的基础上研究出设备匹配和数据传输的方法,分享出来给大家~

顺便附上运行成功的工程文件和framework供大家参考~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: