Android - Connectivity Questions
I have a couple of questions about connectivity on Android, if anyone has any insight it would be great.
1) What is the default when an application wants to wirelessly connect? Is it wlan? And if wlan is switched off or there is no access points around is it 3g or gprs?
2) Is a device always ip connected? Or when its disabled from wlan or 3g does it lose its ip address?
3) Is an application, for example the browser only ever connected to one ip address? Or can it be connected to multiple addresses for each radio such as gprs or wifi (wlan)?
4) Can an application decide which connection to open a socket to? For example can I create an application 开发者_如何学JAVAand decide whether to connect the socket to the wlan or gprs? Or does the OS decide?
5) Finally how do native applications handle connectivity? In the same manner?
Similarly to any Linux machine, you have different devices for different network interfaces - e.g. on my device: eth0 for WLAN, rmnet0 for 3G/GPRS (It's impossible to be connected both via 3G and GPRS at the same time). The connected interface receives an IP address, and the kernel's routing tables update so that all packets will be routed through the connected device. Theoretically, you could have both interfaces connected, however, on all Android devices I've seen, only one network interface will be active at a time (excluding transition periods, when WiFi is being turned on or off, or when a lingering TCP connection is still active).
Usually, native applications don't concern themselves with connecting to the Internet - if there's any kind of connection, it will work; otherwise, the app will receive a connection timeout (or similar error).
精彩评论