我希望在用户打开WiFi时更新我的设计应用程序或者我想要通知用户在启动或打开WiFi设备时有更新。请指导我做什么。
答案 0 :(得分:1)
你需要一个正在侦听WIFI_STATE_CHANGED的intent-filter的BroadcastReceiver:
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
if(isWifiConnected(context)){
//Do something now that wifi is connected!
}
}
public static boolean isWifiConnected(Context context){
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo();
if(info != null){
if(info.getType() == ConnectivityManager.TYPE_WIFI){
return true;
}
}
return false;
}
这是一个简单的接收器,只检测网络状态的变化并检查wifi是否已连接。
您还需要在AndroidManifest.xml文件中注册接收器,如下所示:
<receiver
android:name="com.yourcompany.package.NetworkChangeReceiver"
android:enabled="true" >
<intent-filter>
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
</intent-filter>
</receiver>
更换名称字段中的正确包装位置
注意:当状态发生变化时,Android操作系统确实会通知应用程序..因此,如果您需要进行网络操作,则只要可以访问wifi连接(或者数据),但是在特别需要知道WIFI何时连接的情况下,这个接收器可以帮助你做到这一点。