NTT DOCOMO and Hitachi Kokusai Electric Know-how & Confidential

com.docomo_um.module.net
クラス ShortMessageManager

java.lang.Object
  上位を拡張 com.docomo_um.module.net.ShortMessageManager

public class ShortMessageManager
extends java.lang.Object

ショートメッセージ(SMS・CBS・ETWS)操作管理クラスです。

メッセージの種類は3つあり、メッセージの種類毎にそのメッセージを扱うためのメッセージボックスがあります。 メッセージボックスは以下になります。

全てのメッセージボックスに保存されているメッセージはメッセージ番号で管理されています。 メッセージが保存された時点で、そのメッセージに対してメッセージ番号が付与されます。 付与されたメッセージ番号は全てのボックスで固有であり、全てのボックスのメッセージを一意に識別することができます。
メッセージ番号はメッセージが削除されるまで保持され続けます。メッセージの削除により、他のメッセージ番号が変更されることはありません。 また、削除されたメッセージ番号は再利用されます。 メッセージを削除した後にメッセージを保存した場合に、同一の番号が付与されることもありますので、ご注意ください。

メッセージ番号は、メッセージの保存領域と、その領域内のメッセージを一意に識別するインデックスで構成されています。
メッセージの保存領域は次の4つがあります。

任意のメッセージボックスの操作に対して、当該メッセージボックスに割り当てられていない別の保存領域のメッセージ番号を指定した場合は例外が発生します。
UIMを差し替えた場合は、差し替え後のUIM内のメッセージに対応するメッセージ番号を使用する必要があります。

留意事項
システムからのメッセージ受信通知を検知するために、setShortMessageListener(ShortMessageListener)メソッドを呼び出してリスナを登録する必要があります。
リスナが登録されていない状態でメッセージ受信が発生した場合、システムはアプリケーションにメッセージ受信を通知しませんが、 システムはメッセージを受信して保存領域に受信したメッセージを保存します。
SMS、SMSステータスレポートのメッセージ受信において、保存領域に空きがない場合、 最も古い既読(ShortMessage.STAT_READ)メッセージを上書きしてメッセージを受信します。 この場合、上書きされた古いメッセージのメッセージ番号が上書きした新しいメッセージのメッセージ番号として再利用されます。 但し、保存領域に空きが無く、且つ、保存されているすべてのメッセージが既読(ShortMessage.STAT_READ)以外の場合、 システムはSMS、SMSステータスレポートのメッセージ受信を拒否し、メッセージはセンターで一定期間保管された後、削除されます。
また、保存領域がUIMで、保存領域に空きが無い場合は、保存されているメッセージの状態に関係なく、 システムはSMSのメッセージ受信を拒否し、メッセージはセンターで一定期間保管された後、削除されます。
なおシステムがメッセージの受信を拒否した場合には、ShortMessageListener.onSMSBoxFull(MessageBox)がコールされます。
センターでメッセージを保管している間に保存領域に空きができるか、 または、任意のメッセージが既読(ShortMessage.STAT_READ)に変化すると、システムはメッセージを受信します。
エリアメール(CBS/ETWS)受信において、メッセージの受信が拒否されることはありません。 保存領域に空きが無い状態でエリアメール(CBS/ETWS)を受信すると、既読メッセージがある場合は既読メッセージ内の最も古いメッセージを上書きします。未読メッセージのみの場合は未読メッセージの最も古いメッセージを上書きします。 この場合、上書きされた古いメッセージのメッセージ番号が上書きした新しいメッセージのメッセージ番号として再利用されます。


フィールドの概要
static java.lang.String FORMAT_PDU
          メッセージ形式の一つとして、PDUモードを表します。
static java.lang.String FORMAT_TEXT
          メッセージ形式の一つとして、テキストモードを表します。
 
メソッドの概要
 AreaMailBox getAreaMailBox()
          エリアメールボックスのインスタンスを取得します。
static ShortMessageManager getInstance()
          ショートメッセージ操作管理クラスのインスタンスを生成します。
 java.lang.String getMessageFormat()
          システムで使用するメッセージ形式を取得します。
 ShortMessageBox getShortMessageBox()
          ショートメッセージボックスのインスタンスを取得します。
 SMSStatusReportBox getSMSStatusReportBox()
          SMSステータスレポートボックスのインスタンスを取得します。
 void setMessageFormat(java.lang.String format)
          システムで使用するメッセージ形式を設定します。
 void setShortMessageListener(ShortMessageListener listener)
          リスナを登録します。
 void setSMSCenterNumber(java.lang.String sca, java.lang.String tosca)
          センター番号を設定します。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait
 

フィールドの詳細

FORMAT_TEXT

public static final java.lang.String FORMAT_TEXT
メッセージ形式の一つとして、テキストモードを表します。

関連項目:
setMessageFormat(String), getMessageFormat(), 定数フィールド値

FORMAT_PDU

public static final java.lang.String FORMAT_PDU
メッセージ形式の一つとして、PDUモードを表します。

関連項目:
setMessageFormat(String), getMessageFormat(), 定数フィールド値
メソッドの詳細

getInstance

public static ShortMessageManager getInstance()
ショートメッセージ操作管理クラスのインスタンスを生成します。

このメソッドを複数回呼び出した場合には、同一インスタンスを返します。

戻り値:
ショートメッセージ操作管理クラスのインスタンスを返します。

getShortMessageBox

public ShortMessageBox getShortMessageBox()
ショートメッセージボックスのインスタンスを取得します。

このメソッドを複数回呼び出した場合には、同一インスタンスを返します。
本メソッドで取得するインスタンスは、ShortMessageListener.onSMSReceived(MessageBox, int, boolean)、 またはShortMessageListener.onSMSBoxFull(MessageBox)の引数に設定されるMessageBoxのインスタンスと同一のインスタンスです。

戻り値:
ショートメッセージボックスのインスタンスを返します。

getAreaMailBox

public AreaMailBox getAreaMailBox()
エリアメールボックスのインスタンスを取得します。

このメソッドを複数回呼び出した場合には、同一インスタンスを返します。

戻り値:
エリアメールボックスのインスタンスを返します。

getSMSStatusReportBox

public SMSStatusReportBox getSMSStatusReportBox()
SMSステータスレポートボックスのインスタンスを取得します。

このメソッドを複数回呼び出した場合には、同一インスタンスを返します。
本メソッドで取得するインスタンスは、ShortMessageListener.onSMSReceived(MessageBox, int, boolean)、 またはShortMessageListener.onSMSBoxFull(MessageBox)の引数に設定されるMessageBoxのインスタンスと同一のインスタンスです。

戻り値:
SMSステータスレポートボックスのインスタンスを返します。

setShortMessageListener

public void setShortMessageListener(ShortMessageListener listener)
リスナを登録します。

このインスタンスに登録できるリスナは1つだけです。 このメソッドを複数回呼出した場合、最後に登録したリスナだけが有効です。 null を指定すると、リスナの登録を削除します。

パラメータ:
listener - リスナを指定します。

setMessageFormat

public void setMessageFormat(java.lang.String format)
                      throws DeviceException,
                             ShortMessageException
システムで使用するメッセージ形式を設定します。 工場出荷時はFORMAT_TEXTです。
設定は電源をOFFしても保持されます。 ただし、他のJavaアプリケーションにより設定が変更されることがあります。

本メソッドで設定した形式は、ShortMessageインスタンス生成時に反映されます。 ShortMessageインスタンス生成後に当該インスタンスの形式を変更することはできません。

具体的には、本メソッドで設定した形式は以下に適用されます。

パラメータ:
format - メッセージ形式を指定します。
例外:
java.lang.NullPointerException - formatにnullを指定した場合に発生します。
java.lang.IllegalArgumentException - 不正なformatを指定した場合に発生します。
DeviceException - デバイスの故障により、メッセージ形式の設定に失敗した場合に発生します。
ShortMessageException - 内部エラーにより処理が中断した場合に発生します。
関連項目:
FORMAT_PDU, FORMAT_TEXT, ShortMessage.getFormat()

getMessageFormat

public java.lang.String getMessageFormat()
                                  throws DeviceException,
                                         ShortMessageException
システムで使用するメッセージ形式を取得します。

戻り値:
メッセージ形式を返します。
例外:
DeviceException - デバイスの故障により、メッセージ形式の取得に失敗した場合に発生します。
ShortMessageException - 内部エラーにより処理が中断した場合に発生します。
関連項目:
FORMAT_PDU, FORMAT_TEXT

setSMSCenterNumber

public void setSMSCenterNumber(java.lang.String sca,
                               java.lang.String tosca)
                        throws DeviceException,
                               ShortMessageException
センター番号を設定します。

パラメータ:
sca - SMSセンター番号を指定します。
tosca - 国際アクセスコードを指定します。
例外:
java.lang.NullPointerException - sca または tosca がnullの場合に発生します。
java.lang.IllegalArgumentException - 不正なsca または不正なtoscaを指定した場合に発生します。
DeviceException - デバイスの故障により、センター番号の設定に失敗した場合に発生します。
ShortMessageException - 内部エラーにより処理が中断した場合に発生します。

Copyright © 2013 NTT DOCOMO, INC. and Hitachi Kokusai Electric Inc. All Rights Reserved.