1

ブロードキャスト レシーバーで wifi スキャンが完了するのを待ちたいと思います。

1 つのアクティビティ (ChooseActivity がアクティビティを拡張) と 1 つのクラス (スキャン) があります。

私のアクティビティでは、Scan クラスを呼び出して wifi をスキャンし、終了時にブール値 (true) を返します。コードは次のとおりです。

私の目的は、いくつかの場所でスキャン クラスを呼び出すため、アクティビティのスキャンを分離することです。

public class ChooseActivity extends Activity implements OnClickListener{

private int idMap;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_choose);

    idMap = this.getIntent().getExtras().getInt("ID_MAP");

    ((Button)this.findViewById(R.id.scan_button)).setOnClickListener(this);


}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch(v.getId()){
    case R.id.scan_button:
        Scan scan = new Scan();
        Toast.makeText(getApplicationContext(), " "+scan.scanHotspots(idMap), Toast.LENGTH_SHORT).show();

        break;
    }   
}
}

そして、これが私のスキャンクラスです

public boolean scanHotspots(int idMap){

    wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);

    wifiManager.startScan();

    receiver = new Receiver();
    IntentFilter intentFilter = new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
    context.registerReceiver(receiver, intentFilter);

    //HERE I WANT STOP EXECUTION TO WAIT test VAIRABLE CHANGE STATUS    

    return test;
}


public class Receiver extends BroadcastReceiver{


    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        if(intent.getAction().equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION))
        {   
            test=true;  
        }
    }       
  }
}

前もって感謝します。

4

0 に答える 0