如何在Open wifi网络可用时收到通知

时间:2015-11-13 16:00:51

标签: android xamarin notifications wifi background-service

我有一个应用程序,每当用户处于特定Wifi的范围内时。我想通知用户他在wifi区域,并可以连接到这个wifi并启动应用程序。这个wifi是一个开放的wifi。

我尝试在AndroidManifest.xml中使用静态注册的广播接收器。

的AndroidManifest.xml

<receiver android:name=".WifiReceiver" android:enabled="true" android:exported="true">
  <intent-filter android:priority="100">
    <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    <action android:name="android.net.wifi.supplicant.CONNECTION_CHANGE" />
    <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
  </intent-filter>
</receiver>

WifiReceiver:

if (_wifiManager == null)
            _wifiManager = (WifiManager)context.GetSystemService(Context.WifiService);
        if (_wifiManager.IsWifiEnabled)
        {
            var results = _wifiManager.ScanResults;
            if (results.Any(x => x.Ssid == "MyWifiName"))
            {
                NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
                    .SetSmallIcon(Resource.Drawable.ic_launcher_rounded)
                    .SetContentText("Your are in wifi zone. Start the app")
                    .SetContentTitle("My App");

                NotificationManager notificationManager = (NotificationManager)context.GetSystemService(Context.NotificationService);
                notificationManager.Notify(1,mBuilder.Build());
            }
        }

现在只有当我改变当前连接的网络或改变wifi状态,即打开或关闭它时,这才有效。

确切地说,我想检测一个新的wifi(开放)网络是否可用我想检查它的名字,如果是我的wifi,我想显示通知。

我不倾向于使用一种使用警报的最后手段

编辑:android如何显示开放wifi网络的通知可用。对于我来说,搜索wifi是否可用的理想情况是每当android通知时。

0 个答案:

没有答案