在Android上检测wifi IP地址? [英] Detect wifi IP address on Android?
问题描述
我需要确定Android设备是否连接到Wifi,如果是,则获取其Wifi IP地址.
I need to determine if the Android device is connected to Wifi, and if so, obtain its Wifi IP address.
我知道如何使用 ConnectivityManager 来确定活动网络是否是 Wifi 网络,并且我知道如何使用 java.net.NetworkInterface 遍历可用的网络接口并获取它们的 IP 地址.
I know how to use ConnectivityManager to determine whether the active network is a Wifi network, and I know how to use java.net.NetworkInterface to iterate over the available network interfaces and get their IP addresses.
如果找到多个地址,我不知道该怎么做是确定哪个IP地址属于Wifi网络.有什么建议吗?
What I don't know how to do is determine which IP address belongs to the Wifi network, if there is more than one address found. Any advice?
谢谢.
推荐答案
public String getIpAddr() {
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ip = wifiInfo.getIpAddress();
String ipString = String.format(
"%d.%d.%d.%d",
(ip & 0xff),
(ip >> 8 & 0xff),
(ip >> 16 & 0xff),
(ip >> 24 & 0xff));
return ipString;
}
请注意:您需要在 AndroidManifest.xml 中添加
android.permission.INTERNET
和 android.permission.ACCESS_WIFI_STATE
作为
访问代码.
Please Note: You need to add android.permission.INTERNET
and android.permission.ACCESS_WIFI_STATE
in your AndroidManifest.xml
as <user-permission/>
to access the code.
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
这篇关于在Android上检测wifi IP地址?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!