Many thanks Brian - worked a treat Just had to change Android.Content.Context.WifiService for Android.Content.Context.ConnectivityService In my old code and it would have worked The wonders of programming API's :-) Thanks again John Murray
-----Original Message----- From: monodroid-boun...@lists.ximian.com [mailto:monodroid-boun...@lists.ximian.com] On Behalf Of Brian Long Sent: 13 May 2011 01:06 To: monodroid@lists.ximian.com Subject: Re: [mono-android] checking wifi or mobile connection John With the first bit, you are requesting a WifiManager, and are casting it to a ConnectivityManager - if you want one of those, specify Android.Content.Context.ConnectivityService The second one, I'm not sure why you'd get a typecast problem Code as below I'd expect to work, however I can't test it thanks to being unable to successfully require the ACCESS_WIFI_STATE and ACCESS_NETWORK_STATE permissions (as per other message in this list). Covers wifi and mobile in the first case, just wifi in the second. private string GetNetStateDescription(bool mobile) { ConnectivityManager connectivityManager = (ConnectivityManager)GetSystemService(Android.Content.Context.ConnectivitySe rvice); //Requires ACCESS_NETWORK_STATE and ACCESS_WIFI_STATE to avoid security exception NetworkInfo networkInfo = connectivityManager.GetNetworkInfo(mobile ? Android.Net.ConnectivityType.Mobile : Android.Net.ConnectivityType.Wifi); if (networkInfo.IsConnected) return "Connected"; else if (networkInfo.IsConnectedOrConnecting) return "Connecting"; else return "Disconnected"; } private string GetWiFiStateDescription() { //Requires ACCESS_WIFI_STATE permission to avoid security exception WifiManager wifiManager = (WifiManager)GetSystemService(Android.Content.Context.WifiService); switch (wifiManager.WifiState) { case WifiState.Disabled: return "Disabled"; case WifiState.Disabling: return "Disabling"; case WifiState.Enabled: return "Enabled"; case WifiState.Enabling: return "Enabling"; default: return "Unknown"; } } - Brian > I am sure it must be me but I cant get past this one > > I am trying to check the wifi state > > I have lifted two bits of code from the net (each slightly different ) but both give an unhadled excpetion to do with invalid cast exception > > > > Version 1 > > > > ConnectivityManager connManager = (ConnectivityManager)GetSystemService(Android.Content.Context.WifiService); > > NetworkInfo mWifi = connManager.GetNetworkInfo(Android.Net.ConnectivityType.Wifi); > > if (mWifi.IsConnectedOrConnecting) > > { > > // Do whatever > > Toast.MakeText(this,"wifif is connecting",ToastLength.Long).Show(); > > } > > Version 2 > > > > SupplicantState supState; > > var wifiManager = (WifiManager)GetSystemService(Android.Content.Context.WifiService); > > WifiInfo wifiInfo = wifiManager.ConnectionInfo; > > supState = wifiInfo.SupplicantState; > > > > > > Both have the same system exception or more or less referring to a type cast > > > > Yes I have enabled Access_Wifi in the manifest > > > > Any ideas anyone ? > > Also I want to the same for mobile connection is the same approach appropriate? > > > > Best regards > > John Murray > > > > > > > > > > _______________________________________________ > Monodroid mailing list > Monodroid@lists.ximian.com > http://lists.ximian.com/mailman/listinfo/monodroid > > _______________________________________________ Monodroid mailing list Monodroid@lists.ximian.com UNSUBSCRIBE INFORMATION: http://lists.ximian.com/mailman/listinfo/monodroid _______________________________________________ Monodroid mailing list Monodroid@lists.ximian.com UNSUBSCRIBE INFORMATION: http://lists.ximian.com/mailman/listinfo/monodroid