DeviceNetworkInformation.IsCellularDataEnabled始终返回false

时间:2014-04-14 03:34:00

标签: c# silverlight windows-phone-8 windows-phone windows-phone-8-emulator

我最近安装了Windows Phone 8.1模拟器,试用了一些现有的应用程序并遇到了这个问题:DeviceNetworkInformation.IsCellularDataEnabled(在Microsoft.Phone.Net.NetworkInformation命名空间中)总是返回false。

public void UpdateDataEnabled()
{
    _dataEnabled = DeviceNetworkInformation.IsCellularDataEnabled 
        || DeviceNetworkInformation.IsWiFiEnabled;
}

DeviceNetworkInformation.IsCellularDataEnabled = false

我知道连接确实有效,因为我仍然可以执行HTTP请求。如果我在8.0.x模拟器中运行相同的完全代码,我就不会遇到任何问题。

我还尝试将项目和所有库更新到Windows Phone Silverlight 8.1应用程序,看看是否可以解决问题而且没有运气。我检查了所有功能,并且仍然检查了ID_CAP_NETWORKING。

如果我使用Windows 8 method of obtaining network status编写纯Windows Phone 8.1 XAML应用程序,则模拟器已经过测试和运行。它只适用于我的Silverlight应用程序。

我认为Windows Phone Silverlight应用程序应继续在Windows Phone 8.1设备上运行。我忽略了什么吗?

2 个答案:

答案 0 :(得分:2)

我有同样的问题,我做了verdesrobert和Rishabh876建议的。它唯一的模拟器问题所以我添加条件检查应用程序是否在模拟器上运行

    public bool IsNetworkAvailable()
    {
        if (DeviceNetworkInformation.IsNetworkAvailable)
        {
            if (Microsoft.Devices.Environment.DeviceType == DeviceType.Emulator)
            {
                return true;
            }
            else if ((DeviceNetworkInformation.IsWiFiEnabled || DeviceNetworkInformation.IsCellularDataEnabled) && NetworkInterface.NetworkInterfaceType != NetworkInterfaceType.None)
            {
                return true;
            }
        }
        return false;
    }

我不喜欢那种解决方法,所以如果有人有更好的解决方案,请告诉我。

答案 1 :(得分:1)

似乎WP8.1模拟器仅向WP8.1应用程序提供该信息 我很确定7.1应用程序可以在WP8.1设备上正常运行。