【问题标题】:DeviceNetworkInformation.IsCellularDataEnabled always returns falseDeviceNetworkInformation.IsCellularDataEnabled 始终返回 false
【发布时间】:2014-04-28 18:33:04
【问题描述】:

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

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

我知道连接确实有效,因为我仍然能够执行 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 设备上运行。我忽略了什么吗?

【问题讨论】:

  • 您是否在模拟器选项中启用了“假 GSM”?默认禁用。
  • 是的,假 GSM 也已启用。如果我使用 Windows 8 method of obtaining network status 编写纯 Windows Phone 8.1 XAML 应用程序,则经过测试并且可以正常工作。它只是不适用于我的 Silverlight 应用程序。
  • 很抱歉,我会让专家在这一点上回复:)
  • 我认为这只是一个模拟器问题
  • 你为什么不使用 IsNetworkAvailable 而不是同时检查妻子和手机日期?

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


【解决方案1】:

我有同样的问题,我按照 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;
    }

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

【讨论】:

  • 这似乎只是一个模拟器错误,因为它在我的手机上运行良好。添加您建议的代码似乎已经解决了这个问题。我可能会添加预处理器指令以进行调试,因此它只会在模拟器上运行,直到他们解决问题为止。
  • 我在 wp8.1 设备上测试时没有遇到这个问题,但是一旦启动到商店,信息就无法正确调用。我在测试时没有检查 ID_CAP_NETWORKING 功能并且它正在工作,这是 WP Store 要求吗?
  • 我相信您必须设置功能才能使其工作。现在我不再开发 WP 应用程序,所以我不确定这个问题是否已解决。
【解决方案2】:

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

【讨论】:

  • 你是对的,这似乎只是一个模拟器问题。它在实际设备上运行良好。
猜你喜欢
  • 2011-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-22
  • 1970-01-01
  • 2020-10-03
  • 2017-01-18
相关资源
最近更新 更多