Phone doesn't respond to ping I'm trying to develop an application that knows when I am home based on my phone being on my wifi network or not.  I'm running into a weird issue in that I can only ping the phone if I have recently (within the last minute or so) tried to access a web page on the machine I am pinging on.  I'm not even able to get an ARP reply unless I've tried to recently access the machine.

So, do Android phones have a very restrictive firewall by default?  Is there any way that I can change this?

I don't believe it to be a network issue, because I can ping the phone at any time from my router, it just doesn't respond to other clients on the network.
I believe this is simply because Android puts the Wifi to sleep to save power when the screen is turned off. You can try setting the Wifi Sleep Policy: Settings &gt; Wireless &amp; Network Setting &gt; Wifi Settings &gt; Press Menu button &gt; Advanced &gt; Wifi sleep policy to Never and see if your problem still persists.

Alternatively though, instead of having your server ping your phone, I think it will be easier for the phone to "ping" (or make a HTTP request or through other methods) the server when it is connecting to your Wifi network. Your application can register to the system to receive a broadcast Intent when certain Wifi events occurred.