1. A method for selecting a network for wireless communicating comprising: characterizing available networks to determine current network information; and selecting one of the available networks based on the current network information and at least one of user preferences, application requirements and system information.