2012-04-22 3 views
1

Я хочу попробовать BluetoothManager. Но я действительно смущен после прочтения и тестирования всех записей здесь.iOS 5.1 переключает Bluetooth BluetoothManager

Во-первых, я нашел в

Xcode/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/PrivateFrameworks/BluetoothManager.framework 

необходимая Framework. Но там был только файл бинари. Поэтому я добавляю папку «Заголовки» и помещаю в нее файл BluetoothManager.h.

В моем проекте, я добавляю эти рамки, но не мог найти BluetoothManager.h файл, так что я получаю сообщение об ошибке, если я использую

#import "BluetoothManager.h" 

или

#import <BluetoothManager/BluetoothManager.h> 

I необходимо использовать следующий код для запуска BT:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Override point for customization after application launch. 
#if TARGET_IPHONE_SIMULATOR 
    exit(EXIT_SUCCESS) ; 
#else 
    /* this works in iOS 4.2.3 */ 
    Class BluetoothManager = objc_getClass("BluetoothManager") ; 
    id btCont = [BluetoothManager sharedInstance] ; 
    [btCont setPowered:YES] ; 
#endif 
    return YES ; 
} 

Я пытался также все идеи здесь:

here или here или here

Имеет любой оном действительно хорошая идея, учебник или действительно работает пример использования (PrivateFramework /) BluetoothManager для переключения Bluetooth на iPhone, СКД 5.1?

спасибо.

isicom

ответ

3

Вы можете создавать файлы заголовков с помощью инструментов класса дамп из GitHub

или копировать/вставить ниже содержание (я создан для IOS 5.1) в BluetoothManager.h и добавить этот файл в вашем проект. Тогда вы не должны видеть ошибку.


@class NSMutableDictionary; 

@interface BluetoothManager : NSObject 
{ 
    struct BTLocalDeviceImpl *_localDevice; 
    struct BTSessionImpl *_session; 
    int _available; 
    BOOL _audioConnected; 
    BOOL _scanningEnabled; 
    BOOL _scanningInProgress; 
    unsigned int _scanningServiceMask; 
    struct BTDiscoveryAgentImpl *_discoveryAgent; 
    struct BTPairingAgentImpl *_pairingAgent; 
    struct BTAccessoryManagerImpl *_accessoryManager; 
    NSMutableDictionary *_btAddrDict; 
    NSMutableDictionary *_btDeviceDict; 
} 

+ (id)sharedInstance; 
+ (int)lastInitError; 
- (BOOL)available; 
- (id)init; 
- (BOOL)_attach:(id)arg1; 
- (BOOL)_setup:(struct BTSessionImpl *)arg1; 
- (void)_cleanup:(BOOL)arg1; 
- (void)dealloc; 
- (void)_postNotificationWithArray:(id)arg1; 
- (void)_postNotification:(id)arg1; 
- (void)postNotification:(id)arg1; 
- (void)postNotificationName:(id)arg1 object:(id)arg2; 
- (void)postNotificationName:(id)arg1 object:(id)arg2 error:(id)arg3; 
- (int)powerState; 
- (BOOL)powered; 
- (BOOL)enabled; 
- (BOOL)setPowered:(BOOL)arg1; 
- (BOOL)setEnabled:(BOOL)arg1; 
- (void)_powerChanged; 
- (BOOL)isAnyoneScanning; 
- (id)addDeviceIfNeeded:(struct BTDeviceImpl *)arg1; 
- (void)_removeDevice:(id)arg1; 
- (BOOL)wasDeviceDiscovered:(id)arg1; 
- (BOOL)deviceScanningEnabled; 
- (BOOL)deviceScanningInProgress; 
- (void)resetDeviceScanning; 
- (void)_scanForServices:(unsigned int)arg1 withMode:(int)arg2; 
- (void)scanForServices:(unsigned int)arg1; 
- (void)scanForConnectableDevices:(unsigned int)arg1; 
- (void)setDeviceScanningEnabled:(BOOL)arg1; 
- (void)_restartScan; 
- (void)_setScanState:(int)arg1; 
- (void)_discoveryStateChanged; 
- (BOOL)isDiscoverable; 
- (void)setDiscoverable:(BOOL)arg1; 
- (BOOL)devicePairingEnabled; 
- (void)setDevicePairingEnabled:(BOOL)arg1; 
- (void)cancelPairing; 
- (void)unpairDevice:(id)arg1; 
- (id)pairedDevices:(BOOL)arg1; 
- (id)pairedDevices; 
- (id)pairedLEDevices; 
- (void)setPincode:(id)arg1 forDevice:(id)arg2; 
- (void)acceptSSP:(int)arg1 forDevice:(id)arg2; 
- (void)connectDevice:(id)arg1 withServices:(unsigned int)arg2; 
- (void)connectDevice:(id)arg1; 
- (BOOL)connectable; 
- (void)setConnectable:(BOOL)arg1; 
- (id)connectingDevices; 
- (id)connectedDevices; 
- (BOOL)_onlySensorsConnected; 
- (BOOL)connected; 
- (void)_connectedStatusChanged; 
- (void)_connectabilityChanged; 
- (BOOL)audioConnected; 
- (void)setAudioConnected:(BOOL)arg1; 
- (void)startVoiceCommand:(id)arg1; 
- (void)endVoiceCommand:(id)arg1; 
- (BOOL)isServiceSupported:(unsigned int)arg1; 
- (void)enableTestMode; 

@end 

+0

Он также работает на iOS 6 и новой бета-версии iOS 7! Большое спасибо! –

+0

Я использую этот код BOOL currentState = [btCont enabled]; [btCont setEnabled:! CurrentState]; Это показывает мне ошибку, например, множественный метод с именем setEnbled: в iOS 7 –

+0

Для этих ошибок просто введите cast: [(BluetoothManager *) btCont setEnabled:! CurrentState]; – Yanchi

1

Вот учебник, я писал: http://www.pocketmagic.net/?p=2827.

Он показывает, как настроить Xcode с помощью интерфейса BluetoothManager, а затем использовать эти частные apis для включения/выключения bluetooth, обнаружения соседних устройств или подключения к удаленному устройству Bluetooth. Протестировано с iOS 5.1

Сообщите мне, если есть что-нибудь еще, что я могу вам помочь.

+0

Я не могу импортировать его, он говорит, что не найден, хотя он находится в библиотеке, и я вижу папку «Заголовки». – Michal

+0

Hi Michal, папка Headers не имеет ничего общего с самой картой, которая является двоичной.Вам нужно иметь заголовки для ваших предложений #import, а бинарный модуль BluetoothManager добавлен в качестве новой структуры для вашего проекта для фазы связывания. Если вы не можете добавить фреймворк, вы должны проверить, находится ли двоичный файл фреймворка BluetoothManager в папке, которую вы пытаетесь импортировать. – radhoo

+0

Да, это не работает, но я уже удалил его, и теперь я использую CoreBluetooth. Thx для усилий. – Michal

Смежные вопросы