我有一个应用程序,每当用户处于特定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通知时。