MAC addresses are stripped off at the first router/switch, so they're not going to be useful for determining what is connected, unless you can access the monitoring port on your router/switch and you only have one. If you're on a multi-hop network, it's useless.
edit
OK, I've removed a bunch of stuff I said, now that I understand you're talking about cell phones and wifi connections.
The very easiest way to do this that I can come up with is to set your router's DHCP lease time to something short like 10 minutes, then ask the router "who is connected".
The short least time will auto-renew whenever it expires as long as the client is still there.
Many routers display the current DHCP leases on a management page. You can scrape the page with your app and get a list of all currently active DHCP leases.
You can also get it from /tmp/dnsmasq.leases (on the router) if you're running a router that uses dnsmasq. (the location may change but /tmp is pretty common).
The first solution requires parsing a web page and the second requires getting a plain text file from the router and parsing it.
In any case, the best way to know "who is connected" is to ask the device they're connected to.