Когда Wi-Fi не настроен как точка доступа, он имеет имя android-xx7632x324x32423
home, когда точка доступа включена, это имя исчезло.Также меняется IP-адрес.
Так что, если вы можете получить конфигурацию Wifi до включения точки доступа, прежде всего вы можете использовать intf.getName()
, чтобы получить ссылку на нее.
Во-вторых, ip изменился, поэтому, если вы знаете, какой интерфейс Wi-Fi находится в режиме CONNECTED
, вы можете использовать эту информацию, чтобы идентифицировать ее позже после включения точки доступа.
Ниже приведен код, который я использовал для отладки.Я просто выкладываю все, что могу найти, устраиваю огромный беспорядок, а затем убираю его, когда выясняю свою проблему.GL
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Collections;
import android.net.ConnectivityManager;
textStatus = (TextView) findViewById(R.id.textStatus);
try {
for (NetworkInterface intf : Collections.list(NetworkInterface.getNetworkInterfaces())) {
for (InetAddress addr : Collections.list(intf.getInetAddresses())) {
if (!addr.isLoopbackAddress()){
textStatus.append("\n\n IP Address: " + addr.getHostAddress() );
textStatus.append("\n" + addr.getHostName() );
textStatus.append("\n" + addr.getCanonicalHostName() );
textStatus.append("\n\n" + intf.toString() );
textStatus.append("\n\n" + intf.getName() );
textStatus.append("\n\n" + intf.isUp() );
}
}
}
} catch (Exception ex) {
textStatus.append("\n\n Error getting IP address: " + ex.getLocalizedMessage() );
}
connectivity = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
allInfo = connectivity.getAllNetworkInfo();
mobileInfo = connectivity.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
textStatus.append("\n\n TypeName: " + mobileInfo.getTypeName());
textStatus.append("\n State: " + mobileInfo.getState());
textStatus.append("\n Subtype: " + mobileInfo.getSubtype());
textStatus.append("\n SubtypeName: " + mobileInfo.getSubtypeName());
textStatus.append("\n Type: " + mobileInfo.getType());
textStatus.append("\n ConnectedOrConnecting: " + mobileInfo.isConnectedOrConnecting());
textStatus.append("\n DetailedState: " + mobileInfo.getDetailedState());
textStatus.append("\n ExtraInfo: " + mobileInfo.getExtraInfo());
textStatus.append("\n Reason: " + mobileInfo.getReason());
textStatus.append("\n Failover: " + mobileInfo.isFailover());
textStatus.append("\n Roaming: " + mobileInfo.isRoaming());
textStatus.append("\n\n 0: " + allInfo[0].toString());
textStatus.append("\n\n 1: " + allInfo[1].toString());
textStatus.append("\n\n 2: " + allInfo[2].toString());