You will be able to detect that the device is connected in the background using Bluetooth 2.0, however you must include the App communicates with an accessory
string under Required Background Modes
in the app's plist.
So yes, the first part of your question is doable. However when you say: "We want the (already paired) device to connect when a button is pressed on it"
, it is important to note that this functionality must be built into the device's firmware. The app can always be searching for it, but the device will not be able to communicate with the phone until it connects. Therefore, the button must wake up the device and signal that it now wants to connect.
For the third part of your question, you will not be able to bring the app into the foreground without the user opening the app.
Btw, CoreBluetooth
is the Bluetooth Low Energy framework for iOS. It is completely different from Bluetooth 2.0.