Vodafone Java(tm) テクノロジプラットフォーム仕様

com.vodafone.midlet
クラス ResidentMIDlet

java.lang.Object
  拡張javax.microedition.midlet.MIDlet
      拡張com.vodafone.midlet.ResidentMIDlet

public abstract class ResidentMIDlet
extends javax.microedition.midlet.MIDlet

ResidentMIDlet クラスは、常駐 MIDlet の基本クラスです。

ResidentMIDlet には次の機能があります。

ResidentMIDlet の目的は、MIDlet がネイティブシステムと連携して音声呼び出し、メッセージの着信、定期アラームなどの電話イベントをユーザーに通知し、それらのイベントに応答するタイミングを決定できるようにすることです。常駐 MIDlet は、持続的に常駐する MIDlet として宣言できます。その場合、ネイティブシステムは、MIDlet を中断または停止してイベントを処理することはできません。MIDlet を停止、あるいは一時停止してネイティブイベントハンドラに制御を移させることができるのは、MIDlet 自身かユーザーだけです。

通常は、端末自体がイベントを処理し、このイベントが、実行中の MIDlet の中断または一時停止を引き起こすため、適切なアプリケーションがイベント処理を行うことができます。

例として、音声呼び出しを着信した時に呼び出し音を鳴らし、受信した名前と電話番号を表示する機能を持ったアプリケーションを実行した後に、ユーザーが電話に応答できるようにする必要がある場合を考えてみます。これらの割り込み処理を実現するために、MIDlet を常駐 MIDlet として実装し、これらの処理に加えて、この MIDlet からイベントを処理するアプリケーションに制御を移すかどうか、移す場合はいつ移すのかを決定するようにプログラムを書くことができます。

MIDlet は、MIDxlet-Resident をアプリケーション記述子または JAR マニフェストに含めることにより、ResidentMIDlet として宣言されます。 属性は、MIDlet-1 属性によって識別される MIDlet スイートの最初の MIDlet だけに適用されます。アプリケーションの MIDlet クラスは、com.vodafone.midlet.ResidentMIDlet のサブクラスになる必要があります。複数の常駐 MIDlet を端末にインストールできますが、一度に複数の常駐 MIDlet を選択できません。

端末がアイドル状態になり、実行中のアプリケーションや機能がなくなった場合、現在選択されている常駐 MIDlet があれば、それを起動または再起動する必要があります。現在選択されている常駐 MIDlet には、ネイティブのスクリーンセーバーやアイドルアプリケーションより高い優先順位を指定する必要があります。

ResidentMIDlet を拡張することで、アプリケーションは、抽象メソッド ring(java.lang.String, java.lang.String)dropped()notice(java.lang.String)、および received(java.lang.String, java.lang.String, int) を実装して多数の端末イベント通知を処理できます。

MIDxlet-Resident 属性

Java アプリケーション記述子やマニフェストに MIDxlet-Resident 属性がない場合、MIDlet スイートは通常の MIDlet として扱われますが、この属性がある場合は、次の属性の値に従って処理する必要があります。

リソースの共有と競合

多くの端末は、一度にネイティブアプリケーションか Java アプリケーションのどちらか 1 つだけを実行するように制限されています。一度に実行できるプログラムが 1 つだけの場合、使用可能なリソースを現在のアプリケーションに割り当てるのは難しくありません。

常駐 MIDlet がアクティブで、ユーザーに通知する必要のあるイベントが発生した場合、端末のネイティブのイベントハンドラは、バックライト、バイブレータ、オーディオチャネル、その他のリソースにアクセスして、イベント通知を行う必要があります。Java ランタイムがアクティブな場合は、Java ランタイムもこれらのリソースを使用している場合があります。このような競合を解決するため、ネイティブ機能の優先順位が高くなっており、ネイティブ機能はリソースを一時的に先取りして、イベント通知が完了してから Java ランタイムに完全な制御を返します。常駐 MIDlet に対する予期しないプログラミング障害を防止するため、端末は、リソースの損失をできるだけ API に準拠させて透過的にする必要があります。たとえば、アクティブなマルチメディアプレイヤは、playerStateChanged() メソッドを使って、リソースが使用できないことをアプリケーションに通知する必要があります。

常駐 MIDlet のセキュリティ

常駐 MIDlet に配信される情報には、名前、電話番号、電子メールアドレス、その他の機密情報が含まれていることがあります。個人情報のプライバシ保護のため、MIDlet スイートは com.vodafone.midlet.ResidentMIDlet に対するアクセス権を要求する必要があります。

各常駐 MIDlet は、すべてのアプリケーションと同じセキュリティポリシーに従います。許可されるアクセス権は、割り当てられる保護ドメインによって異なります。ResidentMIDlet は、すべての機密 API について、必要なアクセス権を要求し、許可される必要があります。

イベント処理

常駐 MIDlet では、受信呼び出し、SMS、または定期アラームの着信時に、次の処理が行われます。

導入されたバージョン:
VSCL2.0

フィールドの概要
static int CBS
          メッセージは CBS です。
static int DELIVERY_CONF
          メッセージは配信確認です。
static int MMS
          メッセージは MMS です。
static int SMS
          メッセージは SMS です。
static int WAP_PUSH
          メッセージは WAP プッシュです。
 
コンストラクタの概要
protected ResidentMIDlet()
          保護されたコンストラクタです。
 
メソッドの概要
abstract  void dropped()
          呼び出しに対する応答があったかどうかに関係なく、呼び出しが切断された場合に呼び出されます。
abstract  void notice(java.lang.String comment)
          定期アラームイベントが発生したときに呼び出されます。
abstract  void received(java.lang.String name, java.lang.String addr, int detail)
          メールイベントの着信時に呼び出されます。
abstract  void ring(java.lang.String name, java.lang.String number)
          呼び出し音による通知が停止したとき呼び出されます。
 
クラス javax.microedition.midlet.MIDlet から継承したメソッド
checkPermission, destroyApp, getAppProperty, notifyDestroyed, notifyPaused, pauseApp, platformRequest, resumeRequest, startApp
 
クラス java.lang.Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

CBS

public static final int CBS
メッセージは CBS です。

関連項目:
定数フィールド値

MMS

public static final int MMS
メッセージは MMS です。

関連項目:
定数フィールド値

SMS

public static final int SMS
メッセージは SMS です。

関連項目:
定数フィールド値

WAP_PUSH

public static final int WAP_PUSH
メッセージは WAP プッシュです。

関連項目:
定数フィールド値

DELIVERY_CONF

public static final int DELIVERY_CONF
メッセージは配信確認です。

関連項目:
定数フィールド値
コンストラクタの詳細

ResidentMIDlet

protected ResidentMIDlet()
保護されたコンストラクタです。

例外:
java.lang.SecurityException - com.vodafone.midlet.ResidentMIDlet に対するアクセス権要求が要求されておらず、許可されていない場合
メソッドの詳細

dropped

public abstract void dropped()
呼び出しに対する応答があったかどうかに関係なく、呼び出しが切断された場合に呼び出されます。


ring

public abstract void ring(java.lang.String name,
                          java.lang.String number)
受信電話呼び出しの着信時に呼び出されます。

呼び出し元の番号と、アドレス帳に対応する名前がある場合はその名前。アドレス帳に名前が登録されていない場合、名前の値は null になります。

パラメータ:
name - 呼び出し元の名前。 呼び出し元の番号がアドレス帳に見つからない場合は null
number - 電話番号 (括弧は含まない)

notice

public abstract void notice(java.lang.String comment)
定期アラームイベントが発生したときに呼び出されます。

パラメータ:
comment - 定期アラームのコメント値。 null の場合もある

received

public abstract void received(java.lang.String name,
                              java.lang.String addr,
                              int detail)
メールイベントの着信時に呼び出されます。

パラメータ:
name - 差出人の名前。 null の場合もある
addr - 差出人のメールアドレス。 null の場合もある
detail - 着信した通知のタイプ。次のいずれか

Vodafone Java(tm) テクノロジプラットフォーム仕様

Vodafone Java テクノロジプラットフォーム仕様 バージョン 1.0.5
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。Copyright(c) 2004, Vodafone Group Copyright 2003-2004 Sun Microsystems All Rights Reserved.