アプリを開くときにネットワーク接続を実行し、閉じるときにネットワークを切断して削除するAndroidアプリがあります。デバイスが最初に3Gであった場合、アプリを開いて閉じると、正しい接続/切断アクションが実行されます。
デバイスが最初に WiFi に接続されていた場合、アプリを開くとネットワークに接続されますが、アプリを閉じるとネットワークから切断され、デバイスは 3G にフォールバックします。
基本的に、アプリを開く前にデバイスがオンになっていた WiFi にフォールバックする必要があります。また、アプリは、デバイスが最初にオンになっていた WiFi を切断/削除しません。
以下は、切断を実行するサンプル コードです。
// remove the configuration (and disconnect, if connected)
Log.i(TAG, "removing app network = " + ssid);
boolean b = wifi.removeNetwork(wc.networkId);
assert (b);
// Enable the original WiFi that the device
String deviceInitialSSID = "TEST_WLAN";
previousNetId = wc.networkId;
wifi.setWifiEnabled(true);
wifi.enableNetwork(previousNetId, true);
上記のコードはonStop()
アプリ内で実行されます。ネットワークを有効にする呼び出しは true を返しますが、実際にはデバイス上の以前の WiFi は有効になりません。
ご意見をお聞かせください。前もって感謝します..