ホームに戻る
待ち受け画面への対応(504i以降)
/*
* 待ち受け画面への対応(504i以降)
*/
import com.nttdocomo.ui.*;
public class matiuke extends MApplication
{
nmCanvas nmc;
public void start() {
nmc = new nmCanvas();
Display.setCurrent(nmc);
try{
/* CLOCK_TICK_EVENTを有効に */
setClockTick(true);
}
catch(Exception e){}
}
public void processSystemEvent(int nType, int nParm)
{
try{
/* 活性化状態になったとき */
if(nType == MODE_CHANGED_EVENT){
/* CLOCK_TICK_EVENTを有効に */
setClockTick(true);
}
/* 毎分0秒に呼び出されるイベント */
else if(nType == CLOCK_TICK_EVENT){
}
/* setWakeupTimerで設定した時間後に発生するイベント */
else if(nType == WAKEUP_TIMER_EVENT){
/* CLOCK_TICK_EVENTを有効に */
setClockTick(true);
}
/* 折りたたみ時に発生するイベント */
else if(nType == FOLD_CHANGED_EVENT){
/* 閉じている */
if(nParm == 0){
}
/* 開いている */
else if(nParm == 1){
}
}
}
catch(Exception e){}
}
public class nmCanvas extends Canvas
{
String s1 = "abc";
int font_width;
int font_height;
int screen_width;
int screen_height;
int position_x;
int position_y;
public nmCanvas()
{
/* ソフトキーの左側を「変更」にする */
setSoftLabel(Frame.SOFT_KEY_1, "休眠");
/* ソフトキーの右側を「終了」にする */
setSoftLabel(Frame.SOFT_KEY_2, "終了");
/* スクリーンの幅と高さを取得 */
screen_width = getWidth();
screen_height = getHeight();
/* デフォルトのフォントを取得 */
Font font = Font.getDefaultFont();
/* 文字列のフォント情報を取得 */
font_width = font.stringWidth(s1);
font_height = font.getHeight();
/* 文字列を中央に表示するための位置を算出 */
position_x = (screen_width - font_width) / 2;
position_y = (screen_height + font_height) / 2;
}
public void paint(Graphics g)
{
/* 描画を隠す */
g.lock();
/* 画面のクリア */
g.clearRect(0, 0, screen_width, screen_height);
/* 文字列の描画 */
g.drawString(s1, position_x, position_y);
/* 描画されたものを表示 */
g.unlock(true);
}
public void processEvent(int nType, int nParm)
{
if(nType == Display.KEY_PRESSED_EVENT) {
switch(nParm) {
case Display.KEY_SOFT1:
try{
/* CLOCK_TICK_EVENTを無効に */
setClockTick(false);
/* 180000ms後にWAKWUP_TIMER_EVENTを呼び出す */
setWakeupTimer(180000);
/* 非活性化状態へ(キーイベントを受け付けない) */
deactivate();
/* 休眠状態へ(全てのスレッドを止め省電力する) */
sleep();
}
catch(Exception e){}
break;
case Display.KEY_SOFT2:
/* 終了 */
IApplication.getCurrentApp().terminate();
break;
}
}
this.repaint();
}
}
}
待ち受け画面では3つの状態があるようです
活性化状態、非活性化状態、休眠状態の3つ
初期状態としてはiアプリとしての起動時には活性化状態
待ち受け起動時は非活性化状態のようです
上の例は活性化状態からソフトキー1で休眠を選ぶと
CLOCK_TICK_EVENTを止めて休眠させます
3分たつと非活性化状態に戻りCLOCK_TICK_EVENTを復活させます
JAMファイルのMyConciergeをYesにする必要あり