com.j_phone.midlet
クラス ResidentMIDlet

java.lang.Object
  |
  +--javax.microedition.midlet.MIDlet
        |
        +--com.j_phone.midlet.ResidentMIDlet
すべての実装インタフェース:
MailListener, RingStateListener, ScheduledAlarmListener, TelephonyListener

public abstract class ResidentMIDlet
extends javax.microedition.midlet.MIDlet
implements TelephonyListener, MailListener, ScheduledAlarmListener, RingStateListener

ResidentMIDletは常駐型アプリケーションのための基底クラスです。

常駐型アプリケーションは、Jadファイル中のMIDlet-Residentデスクリプタが「Y」、または「S」に設定されているMIDletで、機器の着信待ち受け用に動作するものです。このMIDletにおいてはテレフォニー機能のTelephonyListenerMailListenerScheduledAlarmListener及びRingStateListenerを必ず実装する必要があります。ResidentMIDletにはこれらのインタフェースのメソッドを abstract で宣言してあります。

ResidentMIDletでの着信通知およびアラーム通知

ResidentMIDletでは、音声着信、SMS着信、またはスケジュールアラームが発生すると、以下のような順序で処理されます。

  1. 機器に音声着信、メール着信またはスケジュールアラームが発生する。

  2. 音声を再生するメディアプレイヤーが再生中であれば停止してMediaPlayerListenerのplayerStateChanged()メソッドが呼び出される。フレーズプレイヤーが再生中の場合は、プレイヤーは停止するがPhraseTrackListenerのeventOccurred()は呼び出されない。また、バイブレータ、LCDバックライトの制御は中止される。

  3. 機器のネイティブシステム側に設定された内容で、ユーザーに着信通知もしくはアラーム通知が行われる。ユーザー操作によるJava VMの一時停止などが発生する場合がある。

  4. 音声着信時(電話呼び出しの開始)はTelephonyListenerのring()、SMS着信時はMailListenerのreceived()、アラーム発生時はScheduledAlarmListenerのnotice()が呼び出される

  5. RingStateListenerのringStarted()が呼び出される。

  6. RingStateListenerのringStopped()が呼び出される。ringStopped()メソッドが呼び出されるタイミングは下記の3つの場合がある。

  7. 音声着信であった場合、TelephonyListenerのignored()が呼び出される

RingStateListenerのイベント通知は、MIDletが常駐型アプリケーションとして実行されているときにのみ行われます。

上記4のイベントリスナ呼び出し(リスナ内部を含む)から、上記6のRingStateListenerのringStopped()が呼び出されるまで(ringStopped()内部を含まず)の期間に音声を扱うメディアプレイヤー、フレーズプレイヤー、バイブレータ、またはLCDバックライトを使用するとRuntimeException例外が発生します。ringStopped()ソッドの呼び出し以降はメディアプレイヤー、フレーズプレイヤー、バイブレータ、およびLCDバックライトの操作が行えるようになります。たとえばringStopped()内部にてメディアプレイヤーやフレーズプレイヤーを再開させても問題ありません。

通常起動型MIDletでの着信通知およびアラーム通知

通常起動型MIDletでは、下記のイベント通知があるのみで、ネイティブシステム側ではユーザーに対して何も通知しません。ユーザーにどのように通知するかはMIDletにゆだねられています。

表1. 通常起動型MIDletでの着信関連イベント
タイミング 呼び出されるリスナメソッド
音声着信時(電話呼び出しの開始) TelephonyListenerのring()
電話呼び出しの終了時、または一時停止の後にJava VMを起動した時点 TelephonyListenerのignored()
SMS着信時 MailListenerのreceived()
アラーム発生時 ScheduledAlarmListenerのnotice()


インタフェース com.j_phone.system.MailListener から継承したフィールド
CBS_DEFINE, CBS_PL, GREETING, LONGMAIL, RELAY, SKYMAIL, WEB
 
コンストラクタの概要
protected ResidentMIDlet()
           
 
メソッドの概要
abstract  void ignored()
          電話が切れた場合に呼び出されます。
abstract  void notice(java.lang.String comment)
          アラーム時刻になった時に呼び出されます。
abstract  void received(java.lang.String name, java.lang.String address, int detail)
          SMSを着信した場合に呼び出されます。
abstract  void ring(java.lang.String name, java.lang.String number)
          電話がかかってきた場合に呼び出されます。
abstract  void ringStarted()
          着信通知を開始した場合に呼び出されます。
abstract  void ringStopped()
          着信通知を終了した場合に呼び出されます。
 
クラス javax.microedition.midlet.MIDlet から継承したメソッド
destroyApp, getAppProperty, notifyDestroyed, notifyPaused, pauseApp, resumeRequest, startApp
 
クラス java.lang.Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

ResidentMIDlet

protected ResidentMIDlet()
メソッドの詳細

ring

public abstract void ring(java.lang.String name,
                          java.lang.String number)
電話がかかってきた場合に呼び出されます。 かけてきた人の名前は電話帳に載っている名前であり、載っていない場合は null となります。 非通知の場合は名前、電話番号とも null となります。
定義:
インタフェース TelephonyListener 内の ring
パラメータ:
name - かけてきた人の名前
number - 電話番号(「-」は入っていない)

ignored

public abstract void ignored()
電話が切れた場合に呼び出されます。 通話が終了して Java アプリケーションを再開した場合にも呼び出されます。
定義:
インタフェース TelephonyListener 内の ignored

received

public abstract void received(java.lang.String name,
                              java.lang.String address,
                              int detail)
SMSを着信した場合に呼び出されます。 送信してきた人の名前は電話帳に載っている名前であり、載っていない場合は null となります。
定義:
インタフェース MailListener 内の received
パラメータ:
name - 送信してきた人の名前
address - 送信元メールアドレス
detail - SMSの種類

notice

public abstract void notice(java.lang.String comment)
アラーム時刻になった時に呼び出されます。
定義:
インタフェース ScheduledAlarmListener 内の notice
パラメータ:
comment - コメント

ringStarted

public abstract void ringStarted()
着信通知を開始した場合に呼び出されます。

メディアプレイヤー、フレーズプレイヤーは停止されます。 以降、通知終了までメディアプレイヤーによるサウンド再生はできません。 また、バイブレータ、LCDバックライトの制御は中止されます。

定義:
インタフェース RingStateListener 内の ringStarted

ringStopped

public abstract void ringStopped()
着信通知を終了した場合に呼び出されます。

以降、メディアプレイヤーによるサウンド再生が可能になります。 ただし、メディアプレイヤー、フレーズプレイヤーの再開は行いません。

定義:
インタフェース RingStateListener 内の ringStopped