Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > Отловить событие отключения LCD


Автор: HappyCoder 8.3.2009, 14:07
Когда экран отключается, мне нужно отключать таймер, который обновляет интерфейс, чтобы не тратить ресурсы. Подскажите, как это сделать.

Автор: dive 8.3.2009, 14:32
некоторые телефоны, когда подсветка отключается, вызывают hidenotify(), но далеко не все.
у Samsung есть свое API http://developer.samsungmobile.com/Developer/resources/board_read.jsp?idx=7&tableName=RESOURCESBOARD&blog= и там есть класс LCDLight, с помощью которого можно управлять подсветкой. но это API тоже не все Samsung'и поддерживают.
у Nokia тоже есть API (: и там есть com.nokia.mid.ui.DeviceControl.
и у Motorola есть, и еще много у кого...
вот так можно проверить вендора и вызывать специфичные методы API, зная на каком телефоне мидлет запущен:

Код

public static final int VENDOR_NOKIA              = 1;
  public static final int VENDOR_VODAFONE           = 2;
  public static final int VENDOR_MOTOROLA           = 3;
  public static final int VENDOR_SHARP              = 4;
  public static final int VENDOR_SAMSUNG            = 5;

 private detectVendor()
  {
    try
    {
      Class.forName("com.nokia.mid.ui.DeviceControl");
      vendor = VENDOR_NOKIA;
      return;
    }
    catch (Throwable ex)
    {
    }
    try
    {
      // Motorola
      Class.forName("com.motorola.multimedia.Lighting");
      vendor = VENDOR_MOTOROLA;
      return;
    }
    catch (Throwable ex)
    {
    }
    try
    {
      Class.forName("com.vodafone.v10.system.device.DeviceControl");
      vendor = VENDOR_VODAFONE;
      return;
    }
    catch (Throwable ex)
    {
    }
    try
    {
      Class.forName("com.samsung.util.LCDLight");
      vendor = VENDOR_SAMSUNG;
      return;
    }
    catch (Throwable ex)
    {
    }
  }



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)