開発中の新しい Android アプリで自動化のテストをセットアップしようとしていますが、API の 1 つに少し問題があります。
私が直面している問題は、接続状態ではなく、wifi が接続された後にテストを開始したいということです。私は2つの解決策を試しましたが、運がなく、Androidデバイスが完全に接続される前にテストが開始されたようです(wifiバーにxはありません)
wifiManager.setWifiEnabled(state);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
while (wifiInfo.getSSID() == null) {
Log.i("WifiStatus", "Here I am");
Thread.sleep(Time.ONE_SECOND);
wifiInfo = wifiManager.getConnectionInfo();
これは、接続が確立されているかどうかを判断するために SSID を取得しようとする最初の実装です。ただし、完全な接続が確立される前にテストが開始され、セットアップに失敗します。
ConnectivityManager connManager =
(ConnectivityManager) con.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
wifiManager.setWifiEnabled(state);
while (!networkInfo.isConnected()) {
Log.i("WifiStatus", "Here I am");
Thread.sleep(Time.ONE_SECOND);
networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
}
2 番目の実装では、代わりに接続マネージャーを使用し、isConnected()
.
デバイスがwifiとの接続を完全に確立しているかどうかを確認するために確認できる別の方法はありますか?