Hogyan futtassuk az M55 Ledcontrol api-t használó játékokat
MC60-on és a többi Siemensen
A Siemens M55 több olyan képességgel rendelkezik,
amelyek más Siemens telefonokban nem ismertek. Ezek közül
számunkra a telefonon körben elhelyezkedõ ledek (villogó
mütyürkék) az érdekesek. Az M55-re írt java
játékok gyakran használják ezeket a ledeket
valamilyen képi esemény (pl. robbanás) hatásosabb
érzékeltetésére. Aki játszott már
az M55-re elõre telepített eXtremeGames
nevû játékkal, az tapasztalta, hogy a rezgõ-
és hanghatások mellett fényhatások is kísérik
a játék menetét. Sokaknak megtetszett ez a játék,
és szerették volna futtatni MC60-on vagy másik Siemens
telefonon. Õk a következõ üzenettel szembesültek
a telefonjuk kijelzõjén: |
 |
 |
A program nem fut Siemens Mc60-on, mert a telefon
nem rendelkezik a megfelelõ API-val. |
A NEoMS How-to-ban láthattuk,
hogy az ehhez hasonló hibaüzenetektõl nem kell megijedni,
talán megoldható a probléma. Jelen esetben azonban
nem a NEoMS csomag fogja szolgáltatni a megoldást, mert itt
nem Nokia-Siemens inkompatíbílitás, hanem Siemens-Siemens
konfliktus áll fenn.
A fenti hibaüzenet szerint valami hiányzik, tehát
a dolgunk csak annyi, hogy azt pótoljuk :-) A hiányzó
láncszem a com.siemens.mp.m55.Ledcontrol osztály, amely az
M55 kivételével nem része egyik telefonnak sem. Két
lehetõségünk van: az egyik az, hogy valahogyan "átmásoljuk"
az MC60-ba az M55-ös Ledcontrolt, a másik pedig az, hogy megírjuk
magunk. Mivel a dolog rendkívül egyszerû, ezért
most a kettõ kombinációját alkalmazzuk.
Az alábbi osztály a módosított
M55 Ledcontrol (Ledcontrol.java):
/*
*
Ledcontrol.java
*
*
Ez az osztaly a felepiteset (metodusok neve , konstansok neve, erteke)
tekintve megegyezik a
*
Siemens M55 java api-jaban megtalalhato com.siemens.mp.m55.Ledcontrol osztallyal.
*
A kulonbseg csupan annyi, hogy a metodusok nem native-kent vannak deklaralva,
igy az
*
ezen osztalyt hasznalo programok nem villogtatjak az M55 oldalan levo ledeket,
emiatt
*
a programok nem csak M55-on futtathatoak.
*
*
ZnOS
*
[ znos (kukac) freemail pont hu ]
*
2004
*
*/
package
com.siemens.mp.m55;
/**
*
Ledcontrol Class is used to control TOP/BOTTOM LED blinking.
*
Note: This API is only available on M55 mobile phone!
*/
public
class Ledcontrol /*extends java.lang.Object*/
{
/**
This is the unique value for the upper LED. */
public
static final int LED_TOP = 0;
/**
This is the unique value for the lower LED. */
public
static final int LED_BOTTOM = 1;
/**
An available pattern. */
public
static final int P_SPEED = 0;
/**
An available pattern. */
public
static final int P_LIGHTHOUSE = 1;
/**
An available pattern. */
public
static final int P_WAVE = 2;
/**
An available pattern. */
public
static final int P_BEAT = 3;
/**
An available pattern. */
public
static final int P_RUNWAY = 4;
/**
An available pattern. */
public
static final int P_TRANCE = 5;
/**
An available pattern. */
public
static final int P_ETERNITY = 6;
/**
An available pattern. */
public
static final int P_STROBO = 7;
/**
An available pattern. */
public
static final int P_LIMELIGHT = 8;
/**
An available pattern. */
public
static final int P_NORMAL_BLINKING = 9;
/**
An available pattern. */
public
static final int P_PULSATING = 10;
/**
An available pattern. */
public
static final int P_CONSTANLY_LITEUP = 11;
/**
An available pattern. */
public
static final int P_IDLE = 12;
private
Ledcontrol() {}
/**
This function will switch on the indicated LED. */
public
static /*native*/ void
switchON(int led) {}
/**
This function will switch off the indicated LED. */
public
static /*native*/ void
switchOFF(int led) {}
/**
This function can be used to play a pattern. */
public
static /*native*/ void
playPattern(int pattern) {}
/**
This function will switch off all the LEDs. */
public
static /*native*/ void
stopPattern() {}
} |
Számunkra a fenti kódból csupán
az utolsó négy metódus az érdekes. Ezeket úgy
deklaráljuk, hogy a native kulcsszót elhagyjuk. Az így
keletkezõ kód független lesz a hardvertõl, és
futtathatóvá válik MC60-on.
A probléma technikai hátterét már
ismerjük. Most nézzük meg, hogyan alkalmazzuk a megoldást
a gyakorlatban. A következõkben a NEoMS How-to-ból megismert
módon járunk el:
1. lépés:
A Total Commander segítségével
hozzunk létre egy könyvtárat pl. "pelda" néven,
és másoljuk ebbe a könyvtárba az eXtremeGames.jar
és eXtremeGames.jad fájlokat,
valamint a ledcontrol.zip fájl tartalmát!
2. lépés:
Kattintsunk egyet az eXtremeGames.jar fájlra, ezután
nyomjuk meg a Ctrl+PageDown billyentyûkombinációt.
Ezzel beléptünk a fájlba (mert ez egy közönséges
tömörített fájl).
3. lépés:
A "com" könyvtárat másoljuk (F5) az eXtremeGames.jar
csomagba!
4. lépés:
Az eXtremeGames.jad fájl szerkesztése.
5.lépés:
Az eXtremeGames futtatása MC60-on:
Megjegyzések:
Az összes többi alkalmazás és játék
módosítása is a leírtakhoz hasonlóan
történik.
Ez a leírás szabadon felhasználható
és terjeszthetõ a forrás pontos megjelölésével
(http://inf.nyme.hu/~kusicsk/)!
ZnOS
[znos (kukac) freemail pont hu]
(2004. június)
Utolsó módosítás: 2004. szeptember 25.
|