Обнаружение устройств с низким объемом памяти

Я пытаюсь убрать опцию включения живого тайла в своем приложении для пользователей, использующих устройство с низким объемом памяти (например, 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;
Другие вопросы по тегам