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.