#000655       
#0000ff :  
 #ff0000  : 17.05.2006 19:41
#00ff00 J2ME
#def ,      ,  -  .   ,   google    .        ,          .  

 

 ,   MIDP1.0,   MIDP2.0      .  ,     ,     ,       API . 
  ,           ,    ,      API . 
         . 

API 


Nokia UI API

    Nokia      DeviceControl: 

import com.nokia.mid.ui.DeviceControl;

DeviceContorol.setLight(0,100);  // (0-),  (0..100)
DeviceContorol.setLight(0,0);
          0  100,     . 
  ,     ,    (, 3200)    ( 40 ). 
Nokia UI API      Nokia,       ,  SonyErricsson (   ). 

Siemens Game API
    Siemens  : 

import com.siemens.mp.game.Light;
Light.setLightOn();
Light.setLightOff();
      Siemens,   75  (    ). 

Motorola Backlight  FunLights API

   Motorola ( A760/A780)  BackLight API: 

import com.motorola.multimedia.Lighting;

com.motorola.multimedia.Lighting.backlightOn();
com.motorola.multimedia.Lighting.backlightOff();
 ,     Funlights API,    ,      (  ): 
import com.motorola.funlight.*;

FunLight.getRegion(1).setColor(c);  // RGB
       Backlight API,  FunLights API,  MIDP 2.0 Display API.          API    J      ,    : FunLight, Backlight, MIDP 2.0. 

Samsung LCDLight API

  Samsung   LCDLight API: 
import com.samsung.util.LCDLight;

com.samsung.util.LCDLight.on(0x0fffffff);  //  
com.samsung.util.LCDLight.off();
LG Backlight API

 LG  LG Backlight API: 

import mmpp.media.BackLight;

mmpp.media.BackLight.on(0x0fffffff);  //  
mmpp.media.BackLight.off();
 API      (     ,      ). 

MIDP 2.0 Display API

 MIDP2.0   flashBacklight: 

import javax.microedition.lcdui.Display;

javax.microedition.lcdui.Display.getDisplay(midlet).flashBacklight(0x7fffffff);  //  
javax.microedition.lcdui.Display.getDisplay(midlet).flashBacklight(0);
  ,       ,                  . 
,        ,         . 
  ,         flashBacklight(),      . 
     ,         -    API.              (       ). 

API  

  , Vodaphone  Sharp    API.  ,      SDK. 

   

 ,         . ,   Siemens,      ,         ,       . 

 

   Motorola           FunLight API: 
FunLight.getRegion(n).setColor(c);  // n,  RGB
     .     2  3,   1     . 
       : 
1) Motorola FinLight API: 


FunLight.getRegion(n).setColor(c);  // n,  RGB
2) Siemens M55:
com.siemens.mp.m55.Ledcontrol.switchOn();
com.siemens.mp.m55.Ledcontrol.switchOff();
 3) LG LED API: 
mmpp.media.LED.setColor(c); // RGB4) 
Nokia UI API    ,       ,   . 

       ,        . 

    .
  API,    ,   TLightController    : 

      ; 
    ; 
    (0   ); 
          ,        . 
  API      class.ForName(). 
  Display.flahsBacklight()  .  Display    MIDP 1.0,   MIDP 2.0,   MIDP 1.0    .    : 

       "No such method".  ,   ,         ,      ; 
  getAppProperty("microedition.profiles").     null, ,    "MicroEdition-Profile: MIDP-1.0"  JAD ,      . 
 2   ,       . 
  ,         MIDP 1.0  MIDP 2.0 ,  /  Display.flashBacklight()       (   JEnable [2]) 
        .   ,          ,     . 
     Motorola    ( 100 )   . 
     . 
//*******************************************************************************
//*******************************************************************************
// Universal backlight control class
// Copyright  2006 by Roman Lut
// Free for any use. Please mention me in About box J
//*******************************************************************************
//*******************************************************************************
/*
Singleton. Reference with TLightController.GetInstance()
Default state is ENABLE.
Query TLightController.GetInstance(midlet).CanControl() to see whether class is able to control backlight.
Query TLightController.GetInstance(midlet).CanControlBrightness() to see whether class is able to control brightness.
Use TLightController.GetInstance(midlet).SetBrightness(brightness) to control backlight brightness.
brightness is 0 (minimum) to 255 (maximum);
*/
import javax.microedition.midlet.*;
import com.siemens.mp.game.Light;
import com.nokia.mid.ui.DeviceControl;
import com.motorola.multimedia.Lighting;
import com.motorola.funlight.*;
import javax.microedition.lcdui.Display;
import java.util.Timer;
import java.util.TimerTask;
import com.samsung.util.LCDLight;
import mmpp.media.BackLight;
//=============================================
// TLightController
//=============================================
public class TLightController extends TimerTask
{
  //light control method
  private static final byte LIGHT_NONE               = 0;
  private static final byte LIGHT_SIEMENS            = 1;
  private static final byte LIGHT_NOKIA              = 2;
  private static final byte LIGHT_MOTOROLA_LIGHT     = 3;
  private static final byte LIGHT_MOTOROLA_FUNLIGHT  = 4;
  private static final byte LIGHT_SAMSUNG            = 5;
  private static final byte LIGHT_LG                 = 6;
  private static final byte LIGHT_MIDP20             = 7;
  private byte method;
  private static TLightController inst = null;
  private Region r1,r2,r3;
  Timer   funLightsTimer;
  //---- for timertask -----
  private static MIDlet midlet;
  private static int curBrightness;
  //------------------------
  //============================
  // void ApplyState()
  //============================
  private final void ApplyState()
  {
    switch (method)
    {
      case LIGHT_SIEMENS:
      {
        if (curBrightness>0)
        {
          Light.setLightOn();
        }
        else
        {
          Light.setLightOff();
        }
      }
      break;
      case LIGHT_NOKIA:
      {
        DeviceControl.setLights(0,curBrightness*100/255);
      }
      break;
      case LIGHT_MOTOROLA_LIGHT:
      if (curBrightness>0)
      {
        com.motorola.multimedia.Lighting.backlightOn();
      }
      else
      {
        com.motorola.multimedia.Lighting.backlightOff();
      }
      break;
      case LIGHT_MOTOROLA_FUNLIGHT:
      int c = curBrightness + (curBrightness << 8) + (curBrightness << 16);
      FunLight.getRegion(1).setColor(c);
      r1.setColor(0);
      r2.setColor(0);
      r3.setColor(0);
      break;
      case LIGHT_SAMSUNG:
      if (curBrightness>0)
      {
        com.samsung.util.LCDLight.on(0x0fffffff);  //max 60 seconds ?
      }
      else
      {
        com.samsung.util.LCDLight.off();
      }
      break;
      case LIGHT_LG:
      if (curBrightness>0)
      {
        mmpp.media.BackLight.on(0x0fffffff);
      }
      else
      {
        mmpp.media.BackLight.off();
      }
      break;
      //#MIDP20{
      case LIGHT_MIDP20:
      if (curBrightness>0)
      {
        javax.microedition.lcdui.Display.getDisplay(midlet).flashBacklight(0x7fffffff);
      }
      else
      {
        javax.microedition.lcdui.Display.getDisplay(midlet).flashBacklight(0);
      }
      break;
      //#MIDP20}
    }
  }
  //============================
  // run() (timer task)
  //============================
  public final void run()
  {
    ApplyState();
  }
  //=============================================
  // public TLightController()
  //=============================================
  private TLightController(MIDlet midlet)
  {
    curBrightness=(byte)255;
    this.midlet=midlet;
    //#DEBUG{
    //#DEBUG:  System.out.println("Initializing light controller");
    //#DEBUG}
    method = LIGHT_NONE;
    try
    {
      Class.forName("com.siemens.mp.game.Light");
      //#DEBUG{
      //#DEBUG:   System.out.println("Using com.siemens.mp.game.Light");
      //#DEBUG}
      method = LIGHT_SIEMENS;
    }
    catch (Exception e)
    {
      try
      {
        Class.forName("com.nokia.mid.ui.DeviceControl");
        //#DEBUG{
        //#DEBUG:   System.out.println("Using com.nokia.mid.ui.DeviceControl");
        //#DEBUG}
        method = LIGHT_NOKIA;
      }
      catch (Exception e3)
      {
        try
        {
          Class.forName("com.motorola.funlight.FunLight");
          //#DEBUG{
          //#DEBUG:   System.out.println("Using com.motorola.multimedia.FunLight");
          //#DEBUG}
          method = LIGHT_MOTOROLA_FUNLIGHT;
        }
        catch (Exception e1)
        {
          try
          {
            Class.forName("com.motorola.multimedia.Lighting");
            //#DEBUG{
            //#DEBUG:   System.out.println("Using com.motorola.multimedia.Lighting");
            //#DEBUG}
            method = LIGHT_MOTOROLA_LIGHT;
          }
          catch (Exception e2)
          {
            try
            {
              Class.forName("com.samsung.util.LCDLight");
              if (LCDLight.isSupported()==false)
              {
                //#DEBUG{
                //#DEBUG:     System.out.println("LCDLight present, but not supported");
                //#DEBUG}
                throw new Exception();
              }
              //#DEBUG{
              //#DEBUG:   System.out.println("Using com.samsung.LCDLight");
              //#DEBUG}
              method = LIGHT_SAMSUNG;
            }
            catch (Exception e4)
            {
              try
              {
                Class.forName("mmpp.media.BackLight");
                //#DEBUG{
                //#DEBUG:   System.out.println("mmpp.media.BackLight");
                //#DEBUG}
                method = LIGHT_LG;
              }
              catch (Exception e5)
              {
                //#MIDP20{
                if (System.getProperty("microedition.profiles").indexOf("2.0")>0)
                {
                  //#DEBUG{
                  //#DEBUG:     System.out.println("javax.microedition.lcdui.Display");
                  //#DEBUG}
                  method = LIGHT_MIDP20;
                }
                //#MIDP20}
              }
            }
          }
        }
      }
    }
    if (method == LIGHT_MOTOROLA_FUNLIGHT)
    {
      FunLight.getControl();
      r1 = FunLight.getRegion(2);
      r2 = FunLight.getRegion(3);
      r3 = FunLight.getRegion(4);
      funLightsTimer = new Timer();
      funLightsTimer.scheduleAtFixedRate(this,0,100);
    }
    else
    {
      funLightsTimer = new Timer();
      funLightsTimer.scheduleAtFixedRate(this,0,3000);
    }
    ApplyState();
  }
  //=============================================
  //GetInstance()
  //=============================================
  public static TLightController GetInstance(MIDlet midlet)
  {
    if (inst==null) inst = new TLightController(midlet);
    return inst;
  }
  //=============================================
  //public boolean CanControl()
  //=============================================
  public boolean CanControl()
  {
    return method!=LIGHT_NONE;
  }
  //=============================================
  //public boolean CanControlBrightness()
  //=============================================
  public boolean CanControlBrightness()
  {
    return (method==LIGHT_NOKIA) || (method==LIGHT_MOTOROLA_FUNLIGHT);
  }
  //=============================================
  //public void SetBrightness()
  //=============================================
  public void SetBrightness(int brightness)
  {
    if (curBrightness == brightness) return;
    curBrightness = brightness;
    ApplyState();
  }
}
 




    

      API-   ,      SDK     LightAPIs.jar,     classpath. 

1) Nokia UI API: 
  : 
com\nokia\mid\ui\DeviceControl$VibraTimerClient.class
com\nokia\mid\ui\DeviceControl$LightTimerClient.class
com\nokia\mid\ui\DeviceControl.class
 

  , ,   lib\classes.zip  Nokia 3300 SDK (    SDK Nokia) [3]. 

2) Siemens Game API 
: 
com\siemens\mp\game\Light.class
 

    lib\api.jar     55 ,  C60 [4]. 

3) Motorola Backlight  Funlights APIs 
: 
com\motorola\funlight\Factory.class
com\motorola\funlight\FunLight.class
com\motorola\funlight\FunLightException.class
com\motorola\funlight\Region.class
com\motorola\funlight\Region_Blank.class
com\motorola\funlight\Region_Impl.class
com\motorola\mutimedia\lighgting.class
 

   "\emulator A.1\lib\javaextensions.jar"  Motorola SDK 5.2.1 [5]. 

4) Samsung LCDLights API 
: 
com\samsung\util\LCDLight.class
    lib\midpapi.zip   Samsung WTK 2.0 [6]. 

5) LG BackLight API 
: 
mmpp\media\BackLight.class
 

   classes.zip  LG Java Station SDK [7]. 

      , ..       SDK. 
       SDK,    TLightControler    .class   - [1]. 
   

 ,       ,     class.forName(). 
       ,     (import) ,    ,   .    ,   ,     Motorola C370/C450/C550, Samsung C100, , ,   ,    . 


1.    TLightController, ,   
http://www.deep-shadows.com/hax/downloads/BacklightControl.zip 
2.  JEnable 
http://www.sosnoski.com/opensrc/jenable/ 
3. Forum Nokia 
http://forum.nokia.com 
4. BenQ Mobile developer section (Siemens Developer Portal) 
http://www.benqmobile.com/developer 
5. Motocoder.com 
http://developer.motorola.com/ 
6. Samsung Developers Club 
http://developer.samsungmobile.com/ 
7. LG Developer portal 
http://java.ez-i.co.kr/wire/list.asp?code=java_mqa&skey=&sel_key=&page=5 
   ,      . 
    : 
http://lgfiles.net/portal/modules/files/showfile.php?lid=17 
http://www.mobilelab.co.kr/programming/up/data_j2me/lgtjavastationsdk101_2.zip