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

如何检测android应用程序中的所有wifi信号,就像在系统设置中一样,android,Android,我刚刚开始在android上开发,需要能够扫描该区域的所有wifi信号。这需要检测您是否处于特定wifi信号区域,如果是这种情况,则发送通知。这需要在不连接wifi信号的情况下完成 我见过一些能够检测周围所有wifi信号的应用程序,但还不知道如何做到这一点。我需要它给我所有的wifi点,它会给你在你的手机上的wifi设置 我希望任何人都能帮助我尽管这个问题可能有重复的地方,但我想回答这个问题,因为这个问题出现在我的谷歌搜索中的前5名 要扫描WiFi信号,您需要使用广播接收器 这是一个例子 @O

我刚刚开始在android上开发,需要能够扫描该区域的所有wifi信号。这需要检测您是否处于特定wifi信号区域,如果是这种情况,则发送通知。这需要在不连接wifi信号的情况下完成

我见过一些能够检测周围所有wifi信号的应用程序,但还不知道如何做到这一点。我需要它给我所有的wifi点,它会给你在你的手机上的wifi设置


我希望任何人都能帮助我

尽管这个问题可能有重复的地方,但我想回答这个问题,因为这个问题出现在我的谷歌搜索中的前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();
}
无线扫描广播接收器

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);
                    }

                }
            });

    }

}
class WifiReceiver扩展了BroadcastReceiver
{
接收时公共无效(上下文c,意图)
{
esWiFiSettings.this.rununuithread(新的Runnable(){
@凌驾
公开募捐{
List results=manager.getScanResults();
if(results.size()可能重复