UWP/C# Получить данные об использовании по типу сети и по приложению

Я ищу способ анализа потребления данных из приложения UWP. Для этого мне нужно:

  • получить данные об использовании за NewTork (Wi-Fi, сотовая связь, роуминг, ...)
  • получить подробную информацию по установленному приложению

В Windows 10 мы можем легко найти эту информацию:

Но как получить ту же информацию в приложении?

Единственная близкая тема, о которой я говорю, это, но это не совсем то же самое...

1 ответ

В UWP, мы можем получить использование сети из сетевого подключения, используя класс ConnectionProfile, который предоставляет информацию о состоянии подключения и статистику подключения.

Для использования ваших данных, вы можете попробовать следующий код,

try
{
    var ConnectionProfiles = NetworkInformation.GetConnectionProfiles();
    if (ConnectionProfiles != null)
    {
        Debug.WriteLine(ConnectionProfiles.Count);
        foreach (var profile in ConnectionProfiles)
        {
            //Profile name
            var name = profile.ProfileName;

            NetworkUsageStates networkUsageStates = new NetworkUsageStates();
            networkUsageStates.Roaming = TriStates.DoNotCare;
            networkUsageStates.Shared = TriStates.DoNotCare;
            //get the data usage from the last 30 day
            DateTime startTime = DateTime.Now.AddDays(-30);
            DateTime endTime = DateTime.Now;
            var usages = await profile.GetNetworkUsageAsync(startTime,
                endTime, DataUsageGranularity.Total, networkUsageStates);
            if (usages != null)
            {
                foreach (var use in usages)
                {
                    //Data usage.
                    var TotalDataUsage = use.BytesReceived + use.BytesSent;
                }
            }
        }
    }
}
catch (Exception e)
{
    Debug.WriteLine(e.Message);
}

Вы можете настроить разные DataUsageGranularity а также NetworkUsageStates чтобы получить данные об использовании вы хотите.

Но что касается ваших данных об использовании, поскольку приложение UWP запускается в изолированной среде, вы не можете получить подробную информацию, и в UWP нет соответствующих API.

Другие вопросы по тегам