When a Bluetooth push MIDlet is registered statically (in push MIDlet installation), the API implementation checks that Bluetooth power is switched on and Bluetooth visibility is set to "Shown to all". If the Bluetooth power state is off, the API implementation shows the user a dialog asking if Bluetooth should be switched on. Similarly if Bluetooth visibility is something other than "Shown to all", a dialog is displayed to the user asking if visibility should be changed. If the user answers "No" to either of these prompts, the MIDlet installation is aborted with the error message "Push registration failure".
Similar checks are made also when a Bluetooth push MIDlet is registered dynamically (using the javax.microedition.io.PushRegistry.registerConnection method). If the user answers "No" to either of the dialogs in this case, the PushRegister.registerConnection method will throw javax.bluetooth.BluetoothStateException.