com.nttdocomo.system
クラス MessageAgent

Object
  拡張com.nttdocomo.system.MessageAgent
すべての実装インタフェース:
MailConstants

public final class MessageAgent
extends Object
implements MailConstants

メッセージiアプリのネイティブ機能にアクセスする手段を提供します。

メッセージの取得および送信機能を提供します。

メッセージ機能では、 メッセージの取得や送信を行うクラスと メッセージそのものを表すクラスが区別されています。 このクラスはメッセージの取得や送信を行いますが、 メッセージそのものはMessageクラスのサブクラス またはMessageDraftクラスのオブジェクトとして表されます。

このメッセージiアプリに割り当てられた 受信フォルダ、送信フォルダ、未送信フォルダのみに対して、 メッセージの取得などの操作が可能です。 各フォルダ中のメッセージは、 送受信日時の新しい順にソートされており、 最新のメッセージが先頭にあります。
各メッセージにはそれぞれのフォルダ中で一意であり、 そのフォルダから削除されるまで変更されることのないIDが付与されています。 getIds(int, boolean)メソッドにより、 取得するフォルダを指定して、各メッセージのIDを取得することができます。 getMessage(int, int)メソッドにより、 取得するフォルダおよびメッセージのIDを指定して メッセージを取得することができます。

取得されたメッセージ(MessageReceivedまたは MessageSentオブジェクト)には、 サブジェクト(通常文字列)、 本文(通常文字列)、 送受信日時(通常文字列として取得可能)、 既読・未読情報、 宛先アドレス(通常文字列またはXString)、 差出人アドレス(XString)、 差出人アドレスの電話帳エントリのID、 添付バイナリデータが設定されています。

メッセージを送信するためには、 send(String, String[], String, byte[])メソッドまたは send(String, XString, String, byte[])メソッドを直接呼び出すか、 MessageDraftオブジェクトに対して宛先等を設定して send(MessageDraft)メソッドを呼び出します。 送信の成否にかかわらず、 送信に使用したMessageDraftオブジェクトの状態は変化しません。

MessageDraftクラスのコンストラクタ MessageDraft(Message, boolean)により、 受信フォルダから取得したメッセージから返信用メッセージを作ることができます。
また、同じくMessageDraftクラスのコンストラクタ MessageDraft(Message, boolean)により、 送信および未送信フォルダから取得したメッセージから 再送信用のメッセージを作ることができます。
送信および未送信フォルダから取得したメッセージは、 send(MessageSent)メソッドにより、 直接再送信することもできます。
未送信フォルダから取得したメッセージの送信が成功した場合、 元の未送信メッセージは削除されます。

空文字列の宛先アドレスは、メッセージiアプリのメッセージの仕様に準拠していないとみなされます。

メッセージ本文中には、 改行文字 (単独の "\r"、単独の "\n"、 または "\r\n")や、 タブ文字 ("\t") を含めることが可能です。 改行文字については、 send メソッドが呼び出された直後に全て "\r\n" に正規化され、正規化後のデータに対してメッセージ i アプリのメッセージの仕様に準拠しているかどうかのチェックが行われ、 その後に送信処理が行われます。

ミニマムスペック:
ミニマムスペックでは、5つまでの宛先アドレスに送信することができます。

導入されたバージョン:
DoJa-3.0 (505i)
関連項目:
Message, MessageSent, MessageReceived, MessageDraft

フィールドの概要
 
インタフェース com.nttdocomo.system.MailConstants から継承したフィールド
ADDRESS_DOMAIN, ADDRESS_FULL, ADDRESS_USER, RECEIVED, SENT, UNSENT
 
メソッドの概要
static void delete(int type, int id)
           メッセージを削除します。
static int[] getIds(int type, boolean unseen)
          メッセージフォルダ中のメッセージのIDを取得します。
static Message getMessage(int type, int id)
          メッセージを取得します。
static int getRemainingBytes(MessageDraft message) [iアプリオプションAPI]
          メッセージ全体(本文+バイナリデータ)に設定できる残りバイト数を返します。
static boolean isSeen(int id)
          受信メッセージの既読・未読情報を取得します。
static boolean send(MessageDraft message)
           メッセージを送信します。
static boolean send(MessageSent message)
           メッセージを再送信します。
static boolean send(String subject, String[] addresses, String body, byte[] data)
           メッセージを送信します。
static boolean send(String subject, XString address, String body, byte[] data)
           メッセージを送信します。
static void setMessageFolderListener(MessageFolderListener listener)
           メッセージフォルダのリスナを登録します。
static void setSeen(int id, boolean seen)
          受信フォルダのメッセージの既読・未読情報を設定します。
static int size(int type, boolean unseen)
          メッセージフォルダ中のメッセージの数を取得します。
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

メソッドの詳細

size

public static int size(int type,
                       boolean unseen)
メッセージフォルダ中のメッセージの数を取得します。 受信フォルダに対しては、未読メッセージのみの数の取得が可能です。

パーミッションとしてメッセージiアプリが許可されている トラステッドiアプリのみこのメソッドを呼び出すことができます。

パラメータ:
type - 取得するメッセージのフォルダ種別を指定します。 RECEIVEDSENTUNSENT のいずれかを指定します。
unseen - 受信フォルダからのメッセージ数の取得において、 未読メッセージのみの数を取得する場合、true を指定します。 false を指定した場合には、すべてのメッセージの数が取得されます。 送信および未送信フォルダに対しては、この引数は無視されます。
戻り値:
フォルダ中のメッセージ数を返します。
例外:
IllegalArgumentException - 引数 type の値が不正な場合に発生します。
SecurityException - メールロックにより、 指定フォルダへのアクセスが拒否された場合に発生します。
SecurityException - [DoJa-4.0 (901i) 以降] ネイティブ独自のセキュリティ設定により、 指定フォルダへのアクセスが拒否された場合に発生します。
IllegalStateException - [DoJa-4.0 (901i) 以降] FOMA端末で、UIM読み込み中の場合に発生します。

getIds

public static int[] getIds(int type,
                           boolean unseen)
メッセージフォルダ中のメッセージのIDを取得します。 受信フォルダに対しては、すべてのメッセージのIDの取得だけでなく、 未読メッセージのみのIDの取得が可能です。

パーミッションとしてメッセージiアプリが許可されている トラステッドiアプリのみこのメソッドを呼び出すことができます。

パラメータ:
type - 取得するメッセージのフォルダ種別を指定します。 RECEIVEDSENTUNSENT のいずれかを指定します。
unseen - 受信フォルダからのメッセージIDの取得において、 未読メッセージのみのIDを取得する場合、true を指定します。 false を指定した場合には、すべてのメッセージのIDが取得されます。 送信および未送信フォルダに対しては、この引数は無視されます。
戻り値:
フォルダ中のすべてのメッセージのIDを返します。 先頭から送受信日時の新しい順番に、 メッセージのIDが設定されています。 メッセージが存在しない場合には、長さ 0 の配列が返ります。 返される配列は、このオブジェクトが内部で保持している配列のコピーです。
例外:
IllegalArgumentException - 引数 type の値が不正な場合に発生します。
SecurityException - メールロックにより、 指定フォルダへのアクセスが拒否された場合に発生します。
SecurityException - [DoJa-4.0 (901i) 以降] ネイティブ独自のセキュリティ設定により、 指定フォルダへのアクセスが拒否された場合に発生します。
IllegalStateException - [DoJa-4.0 (901i) 以降] FOMA端末で、UIM読み込み中の場合に発生します。

getMessage

public static Message getMessage(int type,
                                 int id)
メッセージを取得します。

受信フォルダより取得されたメッセージ (MessageReceivedオブジェクト)には、 サブジェクト(通常文字列)、 本文(通常文字列)、 受信日時(通常文字列として取得可能)、 既読・未読情報、 宛先アドレス(XString)、 差出人アドレス(XString)、 差出人アドレスの電話帳エントリのID、 添付バイナリデータが設定されています。

送信および未送信フォルダより取得されたメッセージ (MessageSentオブジェクト)には、 サブジェクト(通常文字列)、 本文(通常文字列)、 送信日時(通常文字列として取得可能)、 宛先アドレス(通常文字列またはXStringまたはXStringの配列)、 添付バイナリデータが設定されています。

このメソッドによりメッセージを取得しても、既読・未読情報は変化しません。 既読・未読情報を変更するためには、 setSeenメソッドを使用します。

パーミッションとしてメッセージiアプリが許可されている トラステッドiアプリのみこのメソッドを呼び出すことができます。

パラメータ:
type - 取得するメッセージのフォルダ種別を指定します。 RECEIVEDSENTUNSENT のいずれかを指定します。
id - 取得するメッセージのIDを指定します。
戻り値:
取得したメッセージを返します。
例外:
IllegalArgumentException - 引数 type の値が不正な場合に発生します。
IllegalArgumentException - 引数 id に指定したIDのメッセージが存在しない場合に発生します。
SecurityException - メールロックにより、 指定フォルダへのアクセスが拒否された場合に発生します。
SecurityException - [DoJa-4.0 (901i) 以降] ネイティブ独自のセキュリティ設定により、 指定フォルダへのアクセスが拒否された場合に発生します。
IllegalStateException - [DoJa-4.0 (901i) 以降] FOMA端末で、UIM読み込み中の場合に発生します。

send

public static boolean send(String subject,
                           String[] addresses,
                           String body,
                           byte[] data)
                    throws MailException,
                           InterruptedOperationException,
                           StoreException

メッセージを送信します。 宛先アドレスを除く各引数には、 nullや長さ0の配列を指定することができます。

送信処理においてサーバが正常応答を返した場合、true を返します。 送信処理中にサーバがエラーを返した場合、MailExceptionをスローします。 それ以外の場合(iモード発信規制中の場合など)には、false を返します。 宛先が複数の場合、いずれかの宛先へのメッセージの送信に失敗した場合、 その失敗の原因に応じて例外を発生またはfalseを返します。 すべての宛先への送信が成功した場合、true を返します。

[DoJa-3.5 (900i) 以降]
メッセージフォルダのリスナが登録されている場合は、 送信結果に応じてリスナオブジェクトのメソッドが呼び出されます。

パーミッションとしてメッセージiアプリが許可されている トラステッドiアプリのみこのメソッドを呼び出すことができます。 このメソッドを呼び出すとサスペンドします。

パラメータ:
subject - サブジェクト(通常文字列)を指定します。
addresses - 宛先アドレス(通常文字列)を配列で指定します。
body - 本文(通常文字列)を指定します。
data - メッセージiアプリ固有のバイナリデータを指定します。
戻り値:
送信が完了した場合、true を返します。 それ以外の場合、false を返します。
例外:
IllegalStateException - 待ち受け実行時の非活性化状態で呼び出された場合に発生します。
NullPointerException - 引数 addresses が null または、 配列中に null の要素があった場合に発生します。
IllegalArgumentException - 実装がサポートしている数以上のメールアドレスを指定した場合に 発生します。
IllegalArgumentException - 引数 subject、addresses、body、data の内容のいずれかが、 メッセージiアプリのメッセージの仕様に準拠していない場合に発生します。
IllegalArgumentException - メッセージ全体のサイズが メッセージiアプリのメッセージの仕様上の制限を超過している 場合に発生します。
SecurityException - ネイティブ独自のセキュリティ設定により、 メッセージを送信できない場合に発生します。
StoreException - 送信または未送信フォルダにメッセージを追加できないため、 メッセージを送信できない場合に発生します(STORE_FULL)。
IllegalStateException - [DoJa-4.0 (901i) 以降] FOMA端末で、UIM読み込み中の場合に発生します。
MailException - User Unknownなどにより サーバ側からメッセージ送信を拒否された場合に発生します。
InterruptedOperationException - 競合条件などにより、送信操作が異常終了した場合に発生します。

send

public static boolean send(String subject,
                           XString address,
                           String body,
                           byte[] data)
                    throws MailException,
                           InterruptedOperationException,
                           StoreException

メッセージを送信します。 宛先アドレスを除く各引数には、 nullや長さ0の配列を指定することができます。

送信処理においてサーバが正常応答を返した場合、true を返します。 送信処理中にサーバがエラーを返した場合、MailExceptionをスローします。 それ以外の場合(iモード発信規制中の場合など)には、false を返します。

[DoJa-3.5 (900i) 以降]
メッセージフォルダのリスナが登録されている場合は、 送信結果に応じてリスナオブジェクトのメソッドが呼び出されます。

パーミッションとしてメッセージiアプリが許可されている トラステッドiアプリのみこのメソッドを呼び出すことができます。 このメソッドを呼び出すとサスペンドします。

パラメータ:
subject - サブジェクト(通常文字列)を指定します。
address - 宛先アドレス(XString)を指定します。
body - 本文(通常文字列)を指定します。
data - メッセージiアプリ固有のバイナリデータを指定します。
戻り値:
送信が完了した場合、true を返します。 それ以外の場合、false を返します。
例外:
IllegalStateException - 待ち受け実行時の非活性化状態で呼び出された場合に発生します。
NullPointerException - 引数 address が null の場合に発生します。
IllegalArgumentException - 引数 subject、address、body、data の内容のいずれかが、 メッセージiアプリのメッセージの仕様に準拠していない場合に発生します。
IllegalArgumentException - メッセージ全体のサイズが メッセージiアプリのメッセージの仕様上の制限を超過している場合に発生します。
SecurityException - ネイティブ独自のセキュリティ設定により、 メッセージを送信できない場合に発生します。
StoreException - 送信または未送信フォルダにメッセージを追加できないため、 メッセージを送信できない場合に発生します(STORE_FULL)。
IllegalStateException - [DoJa-4.0 (901i) 以降] FOMA端末で、UIM読み込み中の場合に発生します。
MailException - User Unknownなどにより サーバ側からメッセージ送信を拒否された場合に発生します。
InterruptedOperationException - 競合条件などにより、送信操作が異常終了した場合に発生します。

send

public static boolean send(MessageDraft message)
                    throws MailException,
                           InterruptedOperationException,
                           StoreException

メッセージを送信します。

送信処理においてサーバが正常応答を返した場合、true を返します。 送信処理中にサーバがエラーを返した場合、MailExceptionをスローします。 それ以外の場合(iモード発信規制中の場合など)には、false を返します。 宛先が複数の場合、いずれかの宛先へのメッセージの送信に失敗した場合、 その失敗の原因に応じて例外を発生またはfalseを返します。 すべての宛先への送信が成功した場合、true を返します。

[DoJa-3.5 (900i) 以降]
メッセージフォルダのリスナが登録されている場合は、 送信結果に応じてリスナオブジェクトのメソッドが呼び出されます。

パーミッションとしてメッセージiアプリが許可されている トラステッドiアプリのみこのメソッドを呼び出すことができます。 このメソッドを呼び出すとサスペンドします。

パラメータ:
message - 送信するメッセージを指定します。
戻り値:
送信が完了した場合、true を返します。 それ以外の場合、false を返します。
例外:
IllegalStateException - 待ち受け実行時の非活性化状態で呼び出された場合に発生します。
NullPointerException - 引数 message が null の場合に発生します。
IllegalArgumentException - 送信するメッセージの宛先アドレスが指定されていない場合に 発生します。
IllegalArgumentException - メッセージ全体のサイズが メッセージiアプリのメッセージの仕様上の制限を超過している場合に発生します。
SecurityException - ネイティブ独自のセキュリティ設定により、 メッセージを送信できない場合に発生します。
StoreException - 送信または未送信フォルダにメッセージを追加できないため、 メッセージを送信できない場合に発生します(STORE_FULL)。
IllegalStateException - [DoJa-4.0 (901i) 以降] FOMA端末で、UIM読み込み中の場合に発生します。
MailException - User Unknownなどにより サーバ側からメッセージ送信を拒否された場合に発生します。
InterruptedOperationException - 競合条件などにより、送信操作が異常終了した場合に発生します。

send

public static boolean send(MessageSent message)
                    throws MailException,
                           InterruptedOperationException,
                           StoreException

メッセージを再送信します。 送信および未送信フォルダから取得したメッセージを再送信します。
送信フォルダから取得したメッセージを再送信する場合は、 元の送信メッセージを残したまま、同じ内容のメールを新規に送信します。 一方、未送信フォルダから取得したメッセージを再送信する場合は、 元の未送信メッセージを削除して、同じ内容のメールを新規に送信します。

送信処理においてサーバが正常応答を返した場合、true を返します。 送信処理中にサーバがエラーを返した場合、MailExceptionをスローします。 それ以外の場合(iモード発信規制中の場合など)には、false を返します。 宛先が複数の場合、いずれかの宛先へのメッセージの送信に失敗した場合、 その失敗の原因に応じて例外を発生またはfalseを返します。 すべての宛先への送信が成功した場合、true を返します。

[DoJa-3.5 (900i) 以降]
メッセージフォルダのリスナが登録されている場合は、 再送信結果に応じてリスナオブジェクトのメソッドが呼び出されます。

パーミッションとしてメッセージiアプリが許可されている トラステッドiアプリのみこのメソッドを呼び出すことができます。 このメソッドを呼び出すとサスペンドします。

パラメータ:
message - 送信するメッセージを指定します。
戻り値:
送信が完了した場合、true を返します。 それ以外の場合、false を返します。
例外:
IllegalStateException - 待ち受け実行時の非活性化状態で呼び出された場合に発生します。
NullPointerException - 引数 message が null の場合に発生します。
IllegalArgumentException - 引数 message のメッセージの宛先アドレスが指定されていない場合に発生します。
IllegalArgumentException - メッセージ全体のサイズが メッセージiアプリのメッセージの仕様上の制限を超過している場合に発生します。
SecurityException - ネイティブ独自のセキュリティ設定により、 メッセージを送信できない場合に発生します。
StoreException - 送信または未送信フォルダにメッセージを追加できないため、 メッセージを送信できない場合に発生します(STORE_FULL)。
IllegalStateException - [DoJa-4.0 (901i) 以降] FOMA端末で、UIM読み込み中の場合に発生します。
MailException - User Unknownなどにより サーバ側からメッセージ送信を拒否された場合に発生します。
InterruptedOperationException - 競合条件などにより、送信操作が異常終了した場合に発生します。

delete

public static void delete(int type,
                          int id)

メッセージを削除します。

[DoJa-3.5 (900i) 以降]
メッセージフォルダのリスナが登録されている場合は、 削除したメッセージのフォルダに応じてリスナオブジェクトのメソッドが呼び出されます。

パーミッションとしてメッセージiアプリが許可されている トラステッドiアプリのみこのメソッドを呼び出すことができます。

パラメータ:
type - 削除するメッセージのフォルダ種別を指定します。 RECEIVEDSENTUNSENT のいずれかを指定します。
id - 削除するメッセージのIDを指定します。
例外:
IllegalArgumentException - 引数 type の値が不正な場合に発生します。
IllegalArgumentException - 引数 id に指定したメッセージが存在しない場合に発生します。
SecurityException - メールロックにより、 指定フォルダへのアクセスが拒否された場合に発生します。
SecurityException - ネイティブの保護機能により、 メッセージが削除できない場合に発生します。
SecurityException - [DoJa-4.0 (901i) 以降] ネイティブ独自のセキュリティ設定により、 指定フォルダへのアクセスが拒否された場合に発生します。
IllegalStateException - [DoJa-4.0 (901i) 以降] FOMA端末で、UIM読み込み中の場合に発生します。

setSeen

public static void setSeen(int id,
                           boolean seen)
受信フォルダのメッセージの既読・未読情報を設定します。

パーミッションとしてメッセージiアプリが許可されている トラステッドiアプリのみこのメソッドを呼び出すことができます。

パラメータ:
id - 受信メッセージのIDを指定します。
seen - 指定されたIDのメッセージが存在した場合、 true を指定するとそのメッセージが未読状態ならば既読状態になります。 同じく指定されたIDのメッセージが存在した場合、 false を指定しても状態は変更されません。
例外:
IllegalArgumentException - 引数 id に指定したメッセージが存在しない場合に発生します。
SecurityException - メールロックにより、 受信フォルダへのアクセスが拒否された場合に発生します。
SecurityException - [DoJa-4.0 (901i) 以降] ネイティブ独自のセキュリティ設定により、 受信フォルダへのアクセスが拒否された場合に発生します。
IllegalStateException - [DoJa-4.0 (901i) 以降] FOMA端末で、UIM読み込み中の場合に発生します。

isSeen

public static boolean isSeen(int id)
受信メッセージの既読・未読情報を取得します。

パーミッションとしてメッセージiアプリが許可されている トラステッドiアプリのみこのメソッドを呼び出すことができます。

パラメータ:
id - 受信メッセージのIDを指定します。
戻り値:
既読の場合 true を、未読の場合 false を返します。
例外:
IllegalArgumentException - 引数 id に指定したIDのメッセージが存在しない場合に発生します。
SecurityException - メールロックにより、 受信フォルダへのアクセスが拒否された場合に発生します。
SecurityException - [DoJa-4.0 (901i) 以降] ネイティブ独自のセキュリティ設定により、 受信フォルダへのアクセスが拒否された場合に発生します。
IllegalStateException - [DoJa-4.0 (901i) 以降] FOMA端末で、UIM読み込み中の場合に発生します。

setMessageFolderListener

public static void setMessageFolderListener(MessageFolderListener listener)
メッセージフォルダのリスナを登録します。 登録できるリスナは1つだけです。 このメソッドを複数回呼出した場合は最後に登録したリスナだけが有効です。 リスナオブジェクトとして null を指定するとリスナの登録を解除します。

パラメータ:
listener - 登録するリスナオブジェクトを指定します。
導入されたバージョン:
DoJa-3.5 (900i)

getRemainingBytes

public static int getRemainingBytes(MessageDraft message) [iアプリオプションAPI]
メッセージ全体(本文+バイナリデータ)に設定できる残りバイト数を返します。

引数に指定されたメッセージについて、 メッセージ本文を正規化した後のメッセージ全体のバイト数を計算し、 その値とメッセージ i アプリ仕様上のメッセージ全体の最大バイト数とを比較して、 メッセージ全体の残りに設定できるバイト数を返します。 ただし、このメソッドは実際にメッセージ本文の正規化処理を行うわけではありません。 実際の正規化処理は send(MessageDraft) 時に行われます。

パーミッションとしてメッセージiアプリが許可されている トラステッドiアプリのみこのメソッドを呼び出すことができます。

端末によっては、このメソッドをサポートしていない場合があります。 その場合には、例外 UnsupportedOperationException が発生します。

パラメータ:
message - 送信用のメッセージを指定します。
戻り値:
残りバイト数を返します。 正規化後のメッセージ全体のバイト数が最大バイト数を超過している場合は、 超過分のバイト数が負数で返ります。
例外:
UnsupportedOperationException - 端末がこのメソッドをサポートしていない場合に発生します。
NullPointerException - 引数 message が null の場合に発生します。
導入されたバージョン:
DoJa-4.1 (902i)