Java 如何以编程方式确定android是否连接到wifi?
我正在尝试在我正在开发的一个新android应用程序上设置一个自动化测试,但其中一个API有点问题 我面临的问题是,我想在wifi连接后开始测试,而不是在wifi处于连接状态时。我尝试了两种解决方案,但没有成功,测试似乎在我的android设备完全连接之前就开始了(wifi条上没有x) 这是我第一次尝试获取SSID以确定连接是否已建立的实现。但是测试仍然在完全连接之前开始,并且设置失败Java 如何以编程方式确定android是否连接到wifi?,java,android,wifimanager,Java,Android,Wifimanager,我正在尝试在我正在开发的一个新android应用程序上设置一个自动化测试,但其中一个API有点问题 我面临的问题是,我想在wifi连接后开始测试,而不是在wifi处于连接状态时。我尝试了两种解决方案,但没有成功,测试似乎在我的android设备完全连接之前就开始了(wifi条上没有x) 这是我第一次尝试获取SSID以确定连接是否已建立的实现。但是测试仍然在完全连接之前开始,并且设置失败 ConnectivityManager connManager = (ConnectivityMan
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);
}
第二个实现是使用connectivity manager,并使用isConnected()
是否有人有其他方法可以让我检查,以确定设备是否已完全建立与wifi的连接?如果您想这样称呼它,请发送“ping”。如果连接完成,您就知道您仍然处于连接状态。如果您得到一个IOException
或NullPointerException
,那么您可能超时并且不再连接
try {
URL url = new URL("http://www.google.com");
HttpURLConnection urlConnect = (HttpURLConnection) url.openConnection();
urlConnect.setConnectTimeout(1000);
urlConnect.getContent();
System.out.println("Connection established.");
} catch (NullPointerException np) {
np.printStackTrace();
} catch (IOException io) {
io.printStackTrace();
}
而不是手动获取网络信息。。。尝试获取“当前活动”网络并检查是否为wifi。注意:如果为空,则表示未连接任何网络。。。因此,它取代了断开连接的呼叫
ConnectivityManager connManager =
(ConnectivityManager) con.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo current = connManager.getActiveNetworkInfo();
boolean isWifi = current != null && current.getType() == ConnectivityManager.TYPE_WIFI;
wifiManager.getWifiState()==wifiManager.WIFI\u STATE\u启用
当您获得完全连接时可能会对google.com进行某种ping操作?谢谢!事实上,我必须使用该方法来确定与网络的完全连接。这将如何区分wi-fi连接与3G或边缘连接?问题是确定设备是否连接到wi-fi,而不是蜂窝网络。谢谢syb0rg!帮助很大。我不确定我使用的api是否已经解决了这个问题,但这是一个解决问题的方法。出于某种原因,当我使用这个api时,我遇到了一个问题,它会连接,但连接有限,并继续进行我不希望它执行的测试:(@Felix我想当android设备连接到WI-FI时,我想调用API更新数据库
ConnectivityManager connManager =
(ConnectivityManager) con.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo current = connManager.getActiveNetworkInfo();
boolean isWifi = current != null && current.getType() == ConnectivityManager.TYPE_WIFI;