android开发中如何获取指定wifi的信号强度值着急呀。。。

android开发中如何获取指定wifi的信号强度值着急呀。。。,第1张

通过WifiManager的方法getScanResults()获取List<ScanResult>的集合,ScanResultlevel就是信号强度是个负数,然后使用 WifiManagercalculateSignalLevel(scanResultlevel, 100);就可得到确定的信号强度(calculateSignalLevel为计算信号等级函数,MAX_RSSI和MIN_RSSI分别为最强和最弱信号强度等级的信号强度阀值)。

首先你的问题不是清楚提到到底要求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个思路,也不知道你到底要什么信息,只能简单回答你了。

还是需要权限的。有两种解决方案,一种是用busybox作为后门。另外一个如以下参考资料:需要permission:<uses-permission android:name="androidpermissionWRITE_SETTINGS"></uses-permission>更改代码为: androidproviderSettingsSystemputString(getContentResolver(), androidproviderSettingsSystemWIFI_USE_STATIC_IP, "0"); androidproviderSettingsSystemputString(getContentResolver(), androidproviderSettingsSystemWIFI_STATIC_DNS1, "19216802"); androidproviderSettingsSystemputString(getContentResolver(), androidproviderSettingsSystemWIFI_STATIC_DNS2, "19216803"); androidproviderSettingsSystemputString(getContentResolver(), androidproviderSettingsSystemWIFI_STATIC_GATEWAY, "19216801"); androidproviderSettingsSystemputString(getContentResolver(), androidproviderSettingsSystemWIFI_STATIC_NETMASK, "2552552550"); androidproviderSettingsSystemputString(getContentResolver(), androidproviderSettingsSystemWIFI_STATIC_IP, "1");

WifiManager 各种wifi状态变化的时候都会广播相应的消息,定义一个BroadcastReceiver监听,收到后再onReceive 中读取连接的ap信息, 可以用这个方法WifiInfo getConnectionInfo() 获取

 在Android机顶盒上 获取有线网卡MAC地址方法:

(1) 调用android 的API: NetworkInterface getHardwareAddress ()

该API的level为9,只有android 23以上才有该接口

(2) 调用java 的方法: nbtstat/arp

一般android不支持这两个命令

(3) 调用Android的API: WifiManager

权限:

1 <uses-permission android:name="androidpermissionACCESS_WIFI_STATE"></uses- permission>

代码:

12345 WifiManager wifi = (WifiManager) getSystemService(ContextWIFI_SERVICE); WifiInfo info = wifigetConnectionInfo(); return infogetMacAddress();

这个是设备开通Wifi连接,获取到网卡的MAC地址

(4) 调用Linux的busybox

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657/ 子函数:获得本地MAC地址 / public String getMacAddress(){ String result = ""; String Mac = ""; result = callCmd("busybox ifconfig","HWaddr"); //如果返回的result == null,则说明网络不可取 if(result==null){ return "网络出错,请检查网络"; } //对该行数据进行解析 //例如:eth0 Link encap:Ethernet HWaddr 00:16:E8:3E:DF:67 if(resultlength()>0 && resultcontains("HWaddr")==true){ Mac = resultsubstring(resultindexOf("HWaddr")+6, resultlength()-1); Logi("test","Mac:"+Mac+" Maclength: "+Maclength()); if(Maclength()>1){ Mac = MacreplaceAll(" ", ""); result = ""; String[] tmp = Macsplit(":"); for(int i = 0;i<tmplength;++i){ result +=tmp[i]; } } Logi("test",result+" resultlength: "+resultlength()); } return result; } public String callCmd(String cmd,String filter) { String result = ""; String line = ""; try { Process proc = RuntimegetRuntime()exec(cmd); InputStreamReader is = new InputStreamReader(procgetInputStream()); BufferedReader br = new BufferedReader (is); //执行命令cmd,只取结果中含有filter的这一行 while ((line = brreadLine ()) != null && linecontains(filter)== false) { //result += line; Logi("test","line: "+line); } result = line; Logi("test","result: "+result); } catch(Exception e) { eprintStackTrace(); } return result; }

这个需要设备支持busybox工具

(5)查询记录了MAC地址的文件“/proc/net/arp”

需要有这个文件,并且记录了相应的内容

因为 allowedAuthAlgorithmsset(AuthAlgorithmSSID = resultSSIDconfigBSSID = resultBSSID

config =new WifiC wifi = mWifiManagerenableNetworkonfiguration();

configSSID = resultSSID 所以networkId-1

望采纳!!!!

以上就是关于android开发中如何获取指定wifi的信号强度值着急呀。。。全部的内容,包括:android开发中如何获取指定wifi的信号强度值着急呀。。。、android log 怎样看wifi、android wifimanager.forget方法没有等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9479973.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存