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、 メッセージ i アプリ固有のバイナリデータが設定されています。

メッセージを送信するためには、 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 メソッドが呼び出された直後に以下が行われ、その後に送信処理が行われます。

ミニマムスペック:
ミニマムスペックでは、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) 以降] 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) 以降] UIM読み込み中の場合に発生します。

getMessage

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

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

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

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

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

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