Android WIFI сканер приложение для изменения интервала. - PullRequest
0 голосов
/ 04 октября 2018

В настоящее время я занимаюсь разработкой приложения для сканера WIFI на основе уровня Android 26. Теперь я использую кнопку, чтобы вручную выполнить задачу сканирования WIFI, следуя официальным материалам загара Android (https://developer.android.com/guide/topics/connectivity/wifi-scan). Это может работать успешно.

Однако я хочу установить таймер интервала сканера WIFI. Я провел некоторые исследования в Интернете. Некоторые люди говорят, что таймер интервала сканера WIFI основан на аппаратном обеспечении. Вы не можете зафиксировать его в значении.Я просто предполагаю, что, если производительность моего WIFI-интервала составляет 10 секунд, то как я устанавливаю или кодирую его, используя 30-секундный таймер сканирования WIFI.

Большое спасибо.

открытый класс DroneScanningPage расширяет AppCompatActivity{

private WifiManager dronesignalManger;
private ListView scanninglistView;
private Button scanningButton;
private int size = 0 ;
private List<ScanResult> scaningresultsList;
private ArrayList<String> scanningarrayList =new ArrayList<>();
private ArrayAdapter scanningarrayAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_dronescanningpage);
    Intent intent = getIntent();
    scanningButton =findViewById(R.id.scanBtn);
    scanningButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            scanWifi();

        }
    });

    scanninglistView = findViewById(R.id.dronedetectorscanningList);
    dronesignalManger = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);

    if (!dronesignalManger.isWifiEnabled()) {
        Toast.makeText(this, "Please turn on the WiFi for Drone detection", Toast.LENGTH_LONG).show();
        dronesignalManger.setWifiEnabled(true);
    }

    scanningarrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, scanningarrayList);
    scanninglistView.setAdapter(scanningarrayAdapter);
    scanWifi();
}

private void scanWifi() {
    scanningarrayList.clear();
    registerReceiver(dronesignalReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
    dronesignalManger.startScan();
    Toast.makeText(this, "Scaning the drone...", Toast.LENGTH_SHORT).show();
}

BroadcastReceiver dronesignalReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        scaningresultsList = dronesignalManger.getScanResults();
        unregisterReceiver(this);

        for (ScanResult scanResult : scaningresultsList) {
            scanningarrayList.add(scanResult.SSID + " - " + scanResult.capabilities + " - " + scanResult.BSSID + " - " + scanResult.frequency + " - " + scanResult.level);
            scanningarrayAdapter.notifyDataSetChanged();
        }
    }
};

}

...