wifiをスキャンするアプリを作成しようとしています。プレーヤーがゲームで何かを行うと、最も強い Wi-Fi 信号が「消費」されます。その信号は、次のスキャンで検出されなくなります。
Metal Gear Solid Portable ops をプレイしたことのある人なら誰でも、私の言いたいことがわかるでしょう。
プレーヤーによって既に使用されており、再び検出できなくなったワイヤレス信号のリストを作成することで、これを実行しようとしました。問題は、最適なネットワークをスキャンした後、再度スキャンしても無視せずに同じネットワークが表示されることです。
public void onClick(View arg0) {
if (arg0.getId() == R.id.bStart) {
ActivityLoader.loadMain(this);
}
if (arg0.getId() == R.id.bScan) {
Toast.makeText(this, "Searching....", Toast.LENGTH_LONG).show();
for (ScanResult selectedSpot : networkList) {
{
if (firstSignal == null || checkIfNotUsed(firstSignal)) {
firstSignal = selectedSpot;
usedNetworks.add(firstSignal.SSID);
break;
}
}
}
}
if (firstSignal != null) {
Toast.makeText(
this,
"Found Food and Ammo at the " + firstSignal.SSID
+ " store.", Toast.LENGTH_LONG).show();
// textStatus.setText(usedNetworks.toString());
textStatus.setText(networkList.toString());
} else {
Toast.makeText(this, "Found nothing!!!", Toast.LENGTH_LONG).show();
}
}
private boolean checkIfNotUsed(ScanResult selectedSpot) {
// TODO Auto-generated method stub
boolean flag = true;
if (usedNetworks.isEmpty()) {
flag = true;
} else {
for (String used : usedNetworks) {
if (selectedSpot.SSID.equals(used)) {
flag = false;
break;
}
}
}
return flag;
}