Search code examples
c#windows-phone-8.1azure-mobile-servicesconnectivitywin-universal-app

How can I determine whether I am connected to WiFi or a mobile network in Windows Phone 8.1 (Universal app)?


I am working with a Windows Universal app (shared backend between Windows 8.1 and Windows Phone 8.1, not Silverlight). The app connects to Azure with Azure Mobile Services. In the settings for the app I would like to have an option for synchronisation to only occur over a WiFi network.

How can I determine if the phone is connected to WiFi or a mobile network? Although from my research I have found ways to do this with older versions of Windows Phone and with Silverlight, it seems I can only determine if the device is connected to the internet in a Windows Universal app.


Solution

  • I believe you can determine this information from the ConnectionProfile using something akin to:

    using Windows.Networking.Connectivity;
    
    var connectionProfile = NetworkInformation.GetInternetConnectionProfile();
    // connectionProfile can be null (e.g. airplane mode)
    if (connectionProfile != null && connectionProfile.IsWlanConnectionProfile) {
        // do something over WiFi;
    }
    

    There is also the IsWwanConnectionProfile property, which is used to determine if the connection is via a 'mobile' connection (3g, etc).