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.ConnectivityService);
//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
> [email protected]
> http://lists.ximian.com/mailman/listinfo/monodroid
>
>
_______________________________________________
Monodroid mailing list
[email protected]
UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid