Ways to have phone detect other phone running the same app

I am making an app that lets users interact with other users that are within a certain distance, but I'm still deciding how to get the phones to know if there are any other phones in range. I've already considered Bluetooth, and geo-location, but I was wondering if there were any other ways to have the phones figure out if they're close enough.