My wifi scanner is always empty

It seems that the getScanResults () method does not return any results,

public class ActivityPrincipal extends AppCompatActivity {

public TextView textView;
private WifiManager wifi;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_principal);

    textView = (TextView) findViewById(R.id.texto);

    Scan scan = new Scan();

    registerReceiver(scan, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));

    Context c = this;
    wifi = (WifiManager) c.getSystemService(WIFI_SERVICE);

    boolean i = wifi.startScan();
    Log.i("onCreate", "Chamei startScan()");
    Log.i("onCreate", "" + i);
}

// Internal Class Responsible for Listing Wifi Networks Available
public class Scan extends BroadcastReceiver {

    List<ScanResult> wifis;

    @Override
    public void onReceive(Context context, Intent intent) {

        Log.i("onReceive", "fui invocado");

        WifiManager wm = (WifiManager) context.getSystemService(WIFI_SERVICE);
        wifis = wm.getScanResults();

        StringBuilder stringBuilder = new StringBuilder();

        if (wifis.size() > 0) {

            Log.i("onReceive", "wifis > 1");
        } else {
            Log.i("onReceive", "wifis empty");
        }

        for (ScanResult sc : wifis) {
            stringBuilder.append(sc.SSID);
            stringBuilder.append("-");
            stringBuilder.append(sc.BSSID);
            stringBuilder.append(sc.toString());
            Log.i("onReceive", "Contatenei " + sc);
        }
        Log.i("teste", stringBuilder.toString());
    }
}