BTstack for iOS
BTstack for iOS provides an alternative Bluetooth stack for iOS devices with a public API.
It supports the following Bluetooth Classic protocols:
- L2CAP
- RFCOMM
- SDP
Based on these protocols, applications or daemons can implement various Bluetooth profiles. Packages that already use BTstack are: BTstack GPS, Blutrol, WeBe++, and various game emulators.
Note: As BTstack directly uses the Bluetooth hardware, the iOS Bluetooth is automatically disabled for BTstack applications & services. You can always turn BTstack off in Settings->BTstack.
Please visit the project page at GitHub for technical information and check the platform/ios subfolder.
How to develop
To write BTstack-based applications, you don't need to compile the BTstack Cydia package. You can just install it on your JB iOS device and copy /usr/lib/libBTstack.dylib into your project and add btstack/include to your project includes. See btstack/platforms/example/WiiMoteOpenGLDemo for a Xcode-base example. In general, I highly recommend to use theos to create apps & daemons for JB iOS devices instead of using Xcode.
Compile Instructions
Install the following tools:
- Xcode 6.4 as /Applications/Xcode.app
- Xcode 4.4.1 as /Applications/Xcode-4.4.1.app/
- rpetrich's theos fork with "lippoplastic" support
Set the $THEOS environment variable to the location of theos, e.g. like:
export THEOS=/Projects/theos
Go to btstack/platforms/ios and run make
cd btstack/platforms/ios
make package
If everything went right, you'll end up with a .deb package that you can install via:
make install
Console Examples
With THEOS set-up as before, you can compile and install a set of command line examples in the example folder:
cd btstack/platforms/ios/example
make
You can copy the created examples to your device using scp
Wii Mote CoocaTouch example
Similar as before, you can compile the WiiMoteOpenGLDemo by running make:
cd btstack/platforms/ios/example/WiiMoteOpenGLDemo
make package
You'll end up with a deb file that you can install with
make install
Note: as with any other JB application, you need to refresh the SpringBoard icon cache on the device to make the icon show up.
su mobile
uicache
exit