I think you will pretty much always need at least two parameters so I am not sure that this will be a problem for us. Unique identifier is required to identify the device and then you'd need some other metric.
Ideally, if I were inventing this type of technology, I'd come up with an algorithm based on the following parameters that would compute a final score and then determine when to switch.
- physical distance from access point or cellular tower
- $ cost of transport
- Current congestion of cell site
- Is user / device in motion, what is the predicted path they are currently taking and the likelihood that a switch will be necessarily.
- Predicted congestion of cell site based on historical data
- Signal strength
- Signal to noise ratio
- Known quality of wifi access point based on historical data
- Power level required for wifi vs cellular(for conserving battery life)
- Quality of service metric
- Bit error rate, packet loss ratio
- Available bandwidth of wifi site
So you'd basically have software on the device to continually monitor all of those parameters and then seamlessly switch data and voice based on a weighted score after considering the following user definable values:
- Keep it as cheap as possible for me to use my device (may result in a lower quality call or data)
- Give me the absolute best quality connection (may be more expensive and not necessarily the fastest
- Give me the fastest connection (may experience periodic infrequent interruptions especially in data)
- Give me the most battery life (uses the least amount of power possible, may result in lower quality and slower speeds)
- How frequently should the device regularly incorporate unknown wireless access points that require user input