I think the question wasn't about the technology. The question is why doesn't android more intelligently manage Wifi connections. The foundation is of course the network stack, but to manage bidirectional availability you just need to have a bidirectional connection, or even pings, or whatever you can think of being google to detect if the connection is stable. If it is not, and the mobile network connection is, then - don't use wifi.