-1
Я хочу сделать приложение на Android, которое сканирует все сети каждые 5 секунд. Для всех сетей неоднократно я использую handler.postDelayed. Должны быть выполнены функции task()
и wi()
. task()
похоже работа но wi()
нет. Любая идея почему?handler.postDelayed не выполняет
public class MainActivity extends Activity {
TextView tv , tv2;
int i = 0 ;
Timer t;
Thread time;
Handler handler;
WifiManager wifi;
WifiScanReceiver wifiReciever;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.textView1);
tv2 = (TextView) findViewById(R.id.textView2);
handler = new Handler();
handler.postDelayed(new Runnable() { public void run() { task();}}, 5000);
}
public void task(){
i++;
tv.setText("Values "+i);
wi();
}
public void wi(){
wifi=(WifiManager)getSystemService(Context.WIFI_SERVICE);
wifiReciever = new WifiScanReceiver();
wifi.startScan();
}
protected void onPause() {
unregisterReceiver(wifiReciever);
super.onPause();
}
protected void onResume() {
registerReceiver(wifiReciever, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
super.onResume();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
private class WifiScanReceiver extends BroadcastReceiver{
public void onReceive(Context c, Intent intent) {
WifiInfo ws = wifi.getConnectionInfo();
tv2.setText(ws.toString());
}
}
}
выход: значение 1
Я пошел на вызов функции wi() в задаче после каждых пяти, но wi() ничего не показывает –
@UsmanMustafa Включили ли вы правильные разрешения? Посмотрите на [этот ответ] (http://stackoverflow.com/a/7808715/5260943) и проверьте редактирование на мой ответ –
да, я добавил эти разрешения в файл манифеста, когда я не использую обработчик, он отлично работает, но вызовет wi() в задаче не работает –