
wifi热点连接成功之后你把那个dhcp的地方用手动方式进入 就能够看到局域网的ip地址了
要看公网的ip的话,可以用手机浏览器访问 ip138com 就能看到你的wifi路由器分配的公网的ip了
先进行WiFi权限的声明
<!-- 获取WiFi状态 -->
<uses-permission android:name="androidpermissionACCESS_NETWORK_STATE" />
<uses-permission android:name="androidpermissionACCESS_WIFI_STATE" />
<!-- api <= Android29调用setWifiEnabled -->
<uses-permission android:name="androidpermissionCHANGE_WIFI_STATE" />
<!-- 定位权限(api >= 23 用于 WIFI扫描)-->
<uses-permission android:name="androidpermissionACCESS_FINE_LOCATION" />
<uses-permission android:name="androidpermissionACCESS_COARSE_LOCATION" />
注意:ACCESS_FINE_LOCATION和ACCESS_COARSE_LOCATION是危险级权限需要使用中还需要动态申请,申请其中一个即可。
WifiManager mWifiManager = (WifiManager) getApplicationContext()getSystemService(ContextWIFI_SERVICE);
if (BuildVERSIONSDK_INT >=BuildVERSION_CODESR) {
Intent panelIntent =new Intent(SettingsPanelACTION_WIFI);
startActivityForResult(panelIntent,null);
}else{ mWifiManagersetWifiEnabled(!isEnable);}
可以通过监听系统广播来了解WiFi状态。
WIFI_STATE_CHANGED_ACTION:WiFi开关状态;
SCAN_RESULTS_AVAILABLE_ACTION:WiFi列表变化;
RSSI_CHANGED_ACTION:WiFi信号强度变化。
IntentFilter mFilter =new IntentFilter();
mFilteraddAction(WifiManagerWIFI_STATE_CHANGED_ACTION);
mFilteraddAction(WifiManagerSCAN_RESULTS_AVAILABLE_ACTION);
mFilteraddAction(WifiManagerRSSI_CHANGED_ACTION);
mReceiver =new BroadcastReceiver() {
@Override
public void onReceive(Context context,Intent intent) {
handleEvent(intent);
}
};
registerReceiver(mReceiver, mFilter);
private void handleEvent(Intent intent) {
String action = intentgetAction();
if (WifiManagerWIFI_STATE_CHANGED_ACTIONequals(action)) {
final int wifiState =mWifiManagergetWifiState();
if(wifiState ==WifiManagerWIFI_STATE_ENABLED){
postDelayed(()->{mRefreshLayoutautoRefresh();},1000);
}
}else if (WifiManagerSCAN_RESULTS_AVAILABLE_ACTIONequals(action)) {
}else if (WifiManagerRSSI_CHANGED_ACTIONequals(action)) {
if(SystemcurrentTimeMillis() -mLastUpateWifiRssiTime <1000){//刷新太快
return;
}
}
updateWifiChange();
}
切记:wifistate切换到WifiManagerWIFI_STATE_ENABLED,mWifiManagerisWifiEnabled()需要有个等待时间切换。
3的基础上解析广播应答
private void updateWifiChange() {
final int wifiState =mWifiManagergetWifiState();
switch (wifiState) {
case WifiManagerWIFI_STATE_ENABLED:
ArrayListresults = (ArrayList)mWifiManagergetScanResults();
updateApListView(results);
mWlanSbsetChecked(mWifiManagerisWifiEnabled() );
break;
case WifiManagerWIFI_STATE_ENABLING:
break;
case WifiManagerWIFI_STATE_DISABLING:
mAdapterclearData();
mWlanSbsetChecked(mWifiManagerisWifiEnabled() );
break;
case WifiManagerWIFI_STATE_DISABLED:
break;
}
}
WifiManager wifi = (WifiManager) getSystemService(ContextWIFI_SERVICE);
WifiInfo info = wifigetConnectionInfo();
return infogetMacAddress()
详细看这里:>
import androidappActivity;
import androidbluetoothBluetoothAdapter;
import androidcontentContext;
import androidcontentIntent;
import androidnetwifiWifiInfo;
import androidnetwifiWifiManager;
import androidosBundle;
import androidwidgetTextView;
/
获取手机WIFI的MAC地址
@author 单红宇
/
public class GetmacipinfoActivity extends Activity {
/ Called when the activity is first created /
private static final int REQUEST_ENABLE_BT = 3;
private WifiManager mWifi;
private BluetoothAdapter bAdapt;
private String btMac;
private String WifiMac;
@Override
public void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(Rlayoutmain);
mWifi = (WifiManager) getSystemService(ContextWIFI_SERVICE);
if (!mWifiisWifiEnabled()) {
mWifisetWifiEnabled(true);
}
WifiInfo wifiInfo = mWifigetConnectionInfo();
bAdapt = BluetoothAdaptergetDefaultAdapter();
if (bAdapt != null) {
if (!bAdaptisEnabled()) {
Intent enBT = new Intent(BluetoothAdapterACTION_REQUEST_ENABLE);
startActivityForResult(enBT, REQUEST_ENABLE_BT);
}
btMac = bAdaptgetAddress();
} else {
btMac = "No Bluetooth Device!";
}
if ((WifiMac = wifiInfogetMacAddress()) == null) {
WifiMac = "No Wifi Device";
}
TextView mac = (TextView) findViewById(RidmacView);
macsetTextSize(16);
// 查看已经连接上的WIFI信息,在Android的SDK中为我们提供了一个叫做WifiInfo的对象,这个对象可以通过WifiManagergetConnectionInfo()来获取。WifiInfo中包含了当前连接中的相关信息。
// getBSSID() 获取BSSID属性
// getDetailedStateOf() 获取客户端的连通性
// getHiddenSSID() 获取SSID 是否被隐藏
// getIpAddress() 获取IP 地址
// getLinkSpeed() 获取连接的速度
// getMacAddress() 获取Mac 地址
// getRssi() 获取80211n 网络的信号
// getSSID() 获取SSID
// getSupplicanState() 获取具体客户端状态的信息
StringBuffer sb = new StringBuffer();
sbappend("\n获取BSSID属性(所连接的WIFI设备的MAC地址):" + wifiInfogetBSSID());
// sbappend("getDetailedStateOf() 获取客户端的连通性:");
sbappend("\n\n获取SSID 是否被隐藏:"+ wifiInfogetHiddenSSID());
sbappend("\n\n获取IP 地址:" + wifiInfogetIpAddress());
sbappend("\n\n获取连接的速度:" + wifiInfogetLinkSpeed());
sbappend("\n\n获取Mac 地址(手机本身网卡的MAC地址):" + WifiMac);
sbappend("\n\n获取80211n 网络的信号:" + wifiInfogetRssi());
sbappend("\n\n获取SSID(所连接的WIFI的网络名称):" + wifiInfogetSSID());
sbappend("\n\n获取具体客户端状态的信息:" + wifiInfogetSupplicantState());
macsetText("WIFI网络信息: " + sbtoString() + "\n\n蓝牙MAC: " + btMac);
}
}
看下这段代码或许对你有帮助!!
首先你的问题不是清楚提到到底要求log中看wifi的什么信息。所以我略略的回答下~
要知道当前连接的WiFi信息,
WifiManager wifi_service = (WifiManager)getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifi_servicegetConnectionInfo();
Loge("WiFi信息",wifiInfogetXXX());
XXX=你要的信息,wifiInfo点能点出来的。
广播获取WiFi信息,
IntentFilter wifiIntentFilter; // wifi监听器
// wifi
wifiIntentFilter = new IntentFilter();
wifiIntentFilteraddAction(WifiManagerWIFI_STATE_CHANGED_ACTION);
注册侦听,和android 电池侦听显示类似在可以在oncreate方法中加入。
以上是2个思路,也不知道你到底要什么信息,只能简单回答你了。
public class Clock extends Activity {
/ Called when the activity is first created /
@Override
public void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(Rlayoutmain);
WifiManager mWifiManager=(WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo mWifiInfo=mWifiManagergetConnectionInfo();
int wifi=mWifiInfogetRssi();//获取wifi信号强度
TextView textview=(TextView)findViewById(Ridtextview);
textviewsetText(StringvalueOf(wifi));
}
}
记得要加权限<uses-permission android:name="androidpermissionACCESS_WIFI_STATE"/>
以上就是关于如何在android 中获取Wifi设备的IP地址全部的内容,包括:如何在android 中获取Wifi设备的IP地址、Android的WiFi功能总结、android里wifi开启,扫描后wifiManager.getScanResults();取得所有wifi信息,但没有mac地址如何取得等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)