Android wifi获得连接Wifi的频率

时间:2012-10-23 06:11:11

标签: android android-wifi

我有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等等?

2 个答案:

答案 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" />