我正在开发一个Android应用程序。要使此应用程序正常运行,需要始终启用Wi-Fi。由于启用了Wi-Fi,因此将继续扫描可用网络。
我想在Wi-Fi连接到特定网络后立即调用某些功能。 我如何实现这一目标?
我已编写以下代码,但这只能运行一次,如何连续扫描网络?
ConnectivityManager connec = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifi = connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if(wifi.isConnected()){
final WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
final WifiInfo connectionInfo = wifiManager.getConnectionInfo();
if (connectionInfo != null && !(connectionInfo.getSSID().equals(""))) {
String ssid = connectionInfo.getSSID();
}
Log.i("wifi", "connected");
}
else{
Log.i("wifi", "not connected");
}
答案 0 :(得分:2)
按照步骤操作
1)创建NetworkChangeReceiver
public class NetworkChangeReceiver extends BroadcastReceiver {
public static boolean isWifiConnected = true;
public static final String tag = "NETWORKCHANGERECEIVER";
@Override
public void onReceive(final Context context, final Intent intent) {
ConnectivityManager connec = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifi = connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifi.isConnected()) {
final WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
final WifiInfo connectionInfo = wifiManager.getConnectionInfo();
if (connectionInfo != null && !(connectionInfo.getSSID().equals(""))) {
String ssid = connectionInfo.getSSID();
}
isWifiConnected = true;
Log.i("wifi", "connected");
} else {
Log.i("wifi", "not connected");
isWifiConnected = false;
}
}
}
2)将此行添加到Manifest.xml
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<receiver android:name="com.df.src.NetworkChangeReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
答案 1 :(得分:0)
您应该在应用程序中使用BroadcastReceiver来获取有关连接更改的即时通知。
可能有助于您的一些参考:
http://www.grokkingandroid.com/android-getting-notified-of-connectivity-changes/
http://developerandro.blogspot.com/2013/09/check-internet-connection-using.html?m=1
http://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html