Is there anyway to get the access point details that the phone can detect every second? Currently, I can get access point details but not every second.
I have been tried Thread and BroadcastReceiver, but the access point details will only change after 4-6 seconds. The coding may be mistake.
Thread:
handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
while(Running){
try{
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
handler.post(new Runnable() {
@Override
public void run() {
number+=1;
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
List<ScanResult> results = wifiManager.getScanResults();
//int count = 1;
String WifiListDetails = "";
for (ScanResult result : results) {
WifiListDetails += number + ")" + result.SSID + "\n";
}
textViewControlTitle.setText(WifiListDetails);
}
});
}
}
};
new Thread(runnable).start();
BroadcastReceiver
private IntentFilter filter = new IntentFilter(Intent.ACTION_TIME_TICK);
private int number = 0;
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
List<ScanResult> results = wifiManager.getScanResults();
String WifiListDetails = "";
for (ScanResult result : results) {
WifiListDetails += number++ + ")" + result.SSID + "\n";
}
Toast.makeText(getBaseContext(),
WifiListDetails,
Toast.LENGTH_LONG).show();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
protected void onResume(){
this.registerReceiver(receiver, filter);
super.onResume();
}
protected void onPause(){
this.unregisterReceiver(receiver);
super.onPause();
}
This question may have been asked by others, but I couldn't find the answer.