Обнаружение устройств с низким объемом памяти
Я пытаюсь убрать опцию включения живого тайла в своем приложении для пользователей, использующих устройство с низким объемом памяти (например, Nokia Lumia 610). Я использую приведенный ниже код, полученный от Microsoft, но некоторые пользователи, использующие Lumia 800 и Focus i917, сообщают, что после добавления этой функции функциональность живых плиток исчезла.
Как правильно обнаружить нехватку памяти устройства?
Это код, который я использую, который, очевидно, работает в эмуляторе и для большинства пользователей, но не для всех:
long result = 0;
try
{
result = (long)DeviceExtendedProperties.GetValue("ApplicationWorkingSetLimit");
}
catch (ArgumentOutOfRangeException)
{
//The device has not received the OS update, which means the device is a 512-MB device.
}
if (result < 90000000)
{
//Low memory device
}
1 ответ
Решение
Я использую этот код. Проблема, вероятно, в константе, моя на странице MSDN об устройствах с низким объемом памяти: Разработка для устройств на 256 МБ
/// <summary>
/// Flag if device is Low-memory Tango device or not.
/// </summary>
public static bool IsLowMemDevice
{
get
{
if (!isLowMemDevice.HasValue)
{
try
{
// check the working set limit
long result = (long) DeviceExtendedProperties.GetValue("ApplicationWorkingSetLimit");
isLowMemDevice = result < 94371840L;
}
catch (ArgumentOutOfRangeException)
{
// OS does not support this call => indicates a 512 MB device
isLowMemDevice = false;
}
}
return isLowMemDevice.Value;
}
}
private static bool? isLowMemDevice;