Wi-Fiネットワークへの接続に失敗した場合、アラートダイアログを使用して再接続を試みるメソッドを実装しています。これまでのコードは次のとおりです。
public boolean autoConnect() {
String networkSSID = "xxxxx";
boolean connected = false;
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = "\"" + networkSSID + "\"";
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
wifiManager.addNetwork(conf);
wifiManager.startScan();
List<ScanResult> list = wifiManager.getScanResults();
AlertDialog alertDialog = new AlertDialog.Builder(CarNannyv3Activity.this).create();
alertDialog.setTitle("xxxxxxxx Not Available");
alertDialog.setMessage("Please make sure xxxxxx is turned on ");
alertDialog.setButton("Reconnect", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
autoConnect();
dialog.dismiss();
} });
for( ScanResult i : list ) {
if(i.SSID.equals("\"" + networkSSID + "\"")) {
//wifiManager.enableNetwork(i.networkId, true);
wifiManager.reconnect();
return connected = true;
}else{
alertDialog.show();
}
}
return connected;
}
再接続ダイアログが無限ループになるか、まったく表示されないかの2つのうちの1つが表示されます。私が間違っていることに光を当ててください。