Is the idea that the people doing orienteering have the pucks, and the phones are static - or vice-versa?
Another option might be to make the Android app on the phone detect the advertising of Pucks it is interested in, and then to initiate a connection to the Puck itself - rather than going the other way?
I'll have a go here and will see if I can connect to a phone from a Puck though.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
For debugging you can connect the Puck via UART so you can communicate with it without having to have an active Bluetooth connection: http://www.espruino.com/Puck.js#serial-console
For lower level stuff you can also use this tool - but it needs an nRF51DK board: https://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF-Sniffer
Adafruit also have a sniffer: https://www.adafruit.com/product/2269
Is the idea that the people doing orienteering have the pucks, and the phones are static - or vice-versa?
Another option might be to make the Android app on the phone detect the advertising of Pucks it is interested in, and then to initiate a connection to the Puck itself - rather than going the other way?
I'll have a go here and will see if I can connect to a phone from a Puck though.