如何在Android应用程序中检测所有wifi信号,就像在系统设置中一样

时间:2015-03-12 13:01:15

标签: android

我刚刚开始开发android,需要能够扫描该区域内的所有wifi信号。这需要检测您是否在特定wifi信号的区域,并在这种情况下发送通知。这需要在没有连接到wifi信号的情况下完成。

我见过可以检测周围所有wifi信号的应用程序,但无法弄清楚如何执行此操作。我需要它给你在手机上的wifi设置中给你的所有wifi点。

我希望有人能帮助我

1 个答案:

答案 0 :(得分:0)

虽然这个问题可能有重复,但我想回答一下,因为这个问题出现在我的Google搜索排名前5位。

要扫描WiFi信号,您需要使用广播接收器......

这是示例

 @Override
protected void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_es_wi_fi_settings);
    this.manager = (WifiManager)(this.getSystemService(Context.WIFI_SERVICE));
    if(!manager.isWifiEnabled()){
        manager.setWifiEnabled(true);
     }
    receiver = new WifiReceiver();
    registerReceiver(receiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
    manager.startScan();
}

用于Wifi扫描的广播接收器

class WifiReceiver extends BroadcastReceiver
{
    public void onReceive(Context c, Intent intent)
    {

            esWiFiSettings.this.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    List<ScanResult> results = manager.getScanResults();
                    if (results.size() <= 0)
                        return;
                    for (ScanResult result : results) {
                      Log.d(TAG, result.SSID);
                    }

                }
            });

    }

}

我希望上面的代码足以说明这个想法,