Ну, я ничего не знаю о том, как ускорить процесс, может случиться так, что потребуется некоторое время, чтобы найти сигналы Wi-Fi (или ваш Wi-Fi не включен ... это то, что ваша программа должна проверить до того как начнется). Однако одна вещь, которую вы можете сделать для улучшения вашего рабочего процесса, - это сделать все это в другом действии, используя startActivityForResult (). Таким образом, ваше «основное» действие сможет воздействовать на эти данные после того, как оно будет выполнено, и вам не придется загружать процессор в цикле while.
public void onActivityResult(....){
switch(retCode){
case SCAN_ACTIVITY:{
//do stuff
}
}
}