How to send and receive data using the BluetoothManager.framework API for iOS

These days I am working on a project in which we need to connect a non-MFI Bluetooth device to the iPhone, and this device does not support the BLE peripheral client, so we have to do it on classic Bluetooth.

I was able to connect and connect the device to the iPhone using BluetoothManager.framework using the BeeTee demo project guide

But I do not know how to send and return data, I can not find the API in the class headers.

It seems that the answer lies in these three structs:BTAccessoryManagerImpl and BTSessionImpl and BTDeviceImpl , but I can not determine their definition.

 @class NSMutableDictionary; struct BTSessionImpl { }; struct BTDeviceImpl { }; @interface BluetoothManager : NSObject { struct BTAccessoryManagerImpl { } *_accessoryManager; BOOL _audioConnected; int _available; NSMutableDictionary *_btAddrDict; NSMutableDictionary *_btDeviceDict; struct BTDiscoveryAgentImpl { } *_discoveryAgent; struct BTLocalDeviceImpl { } *_localDevice; struct BTPairingAgentImpl { } *_pairingAgent; BOOL _scanningEnabled; BOOL _scanningInProgress; unsigned int _scanningServiceMask; struct BTSessionImpl *_session; // struct BTSessionImpl { } *_session; } + (int)lastInitError; + (id)sharedInstance; - (struct BTAccessoryManagerImpl *)_accessoryManager; // - (struct BTAccessoryManagerImpl { }*)_accessoryManager; - (void)_advertisingChanged; - (BOOL)_attach:(id)arg1; - (void)_cleanup:(BOOL)arg1; - (void)_connectabilityChanged; - (void)_connectedStatusChanged; - (void)_discoveryStateChanged; - (BOOL)_onlySensorsConnected; - (void)_postNotification:(id)arg1; - (void)_postNotificationWithArray:(id)arg1; - (void)_powerChanged; - (void)_removeDevice:(id)arg1; - (void)_restartScan; - (void)_scanForServices:(unsigned int)arg1 withMode:(int)arg2; - (void)_setScanState:(int)arg1; - (BOOL)_setup:(struct BTSessionImpl*)arg1; - (void)acceptSSP:(int)arg1 forDevice:(id)arg2; - (id)addDeviceIfNeeded:(struct BTDeviceImpl *)arg1; - (BOOL)audioConnected; - (BOOL)available; - (void)cancelPairing; - (void)connectDevice:(id)arg1 withServices:(unsigned int)arg2; - (void)connectDevice:(id)arg1; - (BOOL)connectable; - (BOOL)connected; - (id)connectedDevices; - (id)connectingDevices; - (void)dealloc; - (BOOL)devicePairingEnabled; - (BOOL)deviceScanningEnabled; - (BOOL)deviceScanningInProgress; - (void)enableTestMode; - (BOOL)enabled; - (void)endVoiceCommand:(id)arg1; - (id)init; - (BOOL)isAnyoneAdvertising; - (BOOL)isAnyoneScanning; - (BOOL)isDiscoverable; - (BOOL)isServiceSupported:(unsigned int)arg1; - (int)localDeviceSupportsService:(unsigned int)arg1; - (id)pairedDevices; - (void)postNotification:(id)arg1; - (void)postNotificationName:(id)arg1 object:(id)arg2 error:(id)arg3; - (void)postNotificationName:(id)arg1 object:(id)arg2; - (int)powerState; - (BOOL)powered; - (void)resetDeviceScanning; - (void)scanForConnectableDevices:(unsigned int)arg1; - (void)scanForServices:(unsigned int)arg1; - (void)setAudioConnected:(BOOL)arg1; - (void)setConnectable:(BOOL)arg1; - (void)setDevicePairingEnabled:(BOOL)arg1; - (void)setDeviceScanningEnabled:(BOOL)arg1; - (void)setDiscoverable:(BOOL)arg1; - (BOOL)setEnabled:(BOOL)arg1; - (void)setPincode:(id)arg1 forDevice:(id)arg2; - (BOOL)setPowered:(BOOL)arg1; - (void)showPowerPrompt; - (void)startVoiceCommand:(id)arg1; - (void)unpairDevice:(id)arg1; - (BOOL)wasDeviceDiscovered:(id)arg1; @end 
+5
source share
1 answer

You can read or write Bluetooth connection data through the virtual file /dev/ttys* . After successfully connecting to the correct service, you need to call BTDeviceGetComPortForService from MobileBluetooth.framework , which will get the correct file path. A full example with the right heading can be found here .

Open the file and read or write to it. It. To read data asynchronously, you can look here in the openTty and readCompletionNotification .

This worked for me on a jailbroken iOS 7 iPhone. I would like to hear if anyone else is successful with this decision.

+2
source

Source: https://habr.com/ru/post/1212596/


All Articles