Возможно, я задаю неправильный вопрос, но я не могу найти то, что искал, поэтому попробую попросить его здесь вместо Google.
В принципе, у меня есть следующий код, из которого я могу почерпнуть, если я нахожусь на Wi-Fi, 3G или что-то еще (мошенничество приходит на ум).
// Iterate over all network interfaces.
for (Enumeration<NetworkInterface> en =
NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();)
{
NetworkInterface intf = en.nextElement();
// Iterate over all IP addresses in each network interface.
for (Enumeration<InetAddress> enumIPAddr =
intf.getInetAddresses(); enumIPAddr.hasMoreElements();)
{
InetAddress iNetAddress = enumIPAddr.nextElement();
// Loop back address (127.0.0.1) doesn't count as an in-use
// IP address.
if (!iNetAddress.isLoopbackAddress())
{
sLocalIP = iNetAddress.getHostAddress().toString();
sInterfaceName = intf.getName();
}
}
}
Я считаю, что важная часть здесь sInterfaceName = intf.getName();
Теперь на Galaxy S и Galaxy S Tab, похоже, возвращается "eth0", когда вы подключены к WiFi и "pdp0" при подключении к 3G
Тем не менее, я действительно смог протестировать 1 x Galaxy S и 1 x Galaxy S Tab, поскольку они являются единственными устройствами Android, которые у меня есть. Я предполагаю, что имя сетевого интерфейса установлено где-то в ядре менеджером устройства. Возможно, я мог бы пробираться через ядро для каждого устройства, но я решил, что кто-то должен был найти эту информацию уже, любые предложения о том, где искать или что искать в google?