我有ScanResults,从那里我可以拥有SSID,BSSID,所有wifi的频率。
List<ScanResult> results = wifi.getScanResults();
此外我还有连接的wifi信息,所以我也有连接的SSID和连接的wifi的BSSID。
WifiManager wifi;
WifiInfo info;
wifi = (WifiManager) getContext().getSystemService(Context.WIFI_SERVICE);
info = wifi.getConnectionInfo();
现在我只想拥有连接的wifi的频率,但是当我检查SSID和BSSID时,它们对于2个网络可以是相同的。现在我如何才能找到连接Wifi的频率。
同样从那个wifi我想要相应的频道没有。
我找到了一张表
CHANNEL NUMBER LOWER Freq(GHZ)CENTER Freq(GHZ)UPPER Freq(GHZ)
1 2401 2412 2423
2 2404 2417 2428
3 2411 2422 2433
4 2416 2427 2438
5 2421 2432 2443
6 2426 2437 2448
7 2431 2442 2453
8 2436 2447 2458
9 2441 2452 2463
10 2451 2457 2468
11 2451 2462 2473
12 2456 2467 2478
13 2461 2472 2483
14 2473 2484 2495
想知道sdk是否总是提供此表的中心频率以及其他频率如5Ghz等等?
答案 0 :(得分:1)
来自WifiInfo的频率仅在Lollipop(API 21)http://developer.android.com/reference/android/net/wifi/WifiInfo.html#getFrequency()
之后才可用android.net.wifi.WifiInfo
public int getFrequency ()
Returns the current frequency in FREQUENCY_UNITS.
答案 1 :(得分:0)
你可以尝试。
WifiManager wifiMgr = (WifiManager) getContext().getSystemService(context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
int frequency = wifiInfo.getFrequency();
添加以下权限。
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />