パッケージ com.nttdocomo.system

電話帳機能やメール機能など、 携帯電話ネイティブに備わっている機能を利用するクラスを定義します。

参照:
          説明

インタフェースの概要
MailConstants メールに関連する定数を定義するインタフェースです。
MessageFolderListener メッセージフォルダのリスナを定義します。
PhoneBookConstants 電話帳に関連する定数を定義するインタフェースです。
 

クラスの概要
Alarm 携帯電話のネイティブのアラーム機能にアクセスする手段を提供します。
ApplicationStore 携帯電話のネイティブの i アプリデータ管理機能にアクセスする手段を提供します。
AvatarStore 携帯電話のネイティブのアバターデータ管理機能にアクセスする手段を提供します。
Bookmark 携帯電話のネイティブのブックマーク管理機能にアクセスする手段を提供します。
CallRecord 携帯電話のネイティブの音声発着信履歴機能にアクセスする手段を提供します。
CertificateStore 携帯電話のネイティブの証明書機能にアクセスする手段を提供します。
DataBoxFolder データ BOX のフォルダを管理する手段を提供します。
DecomailDraft 送信(または保存)用のデコメールを定義します。
DecomailTemplateStore 携帯電話のネイティブのデコメールテンプレート管理機能にアクセスする手段を提供します。
DTVParameter デジタルテレビアプリケーションから渡される連携パラメータを定義します。
DTVSchedule 携帯電話のネイティブの (デジタルテレビ)視聴/録画予約スケジューラ機能にアクセスする手段を提供します。
DTVScheduleParam デジタルテレビ予約スケジュールの新規登録用のパラメータを定義します。
ImageStore 携帯電話のネイティブの画像データ管理機能にアクセスする手段を提供します。
LocationRecord 携帯電話のネイティブの位置履歴データ管理機能にアクセスする手段を提供します。
Mail ネイティブのメーラから取得したメールを定義します。
MailAgent 携帯電話のネイティブのメール機能にアクセスする手段を提供します。
MailDraft 送信(または保存)用のメールを定義します。
Message ネイティブから取得したメッセージiアプリのメッセージの基底クラスを定義します。
MessageAgent メッセージiアプリのネイティブ機能にアクセスする手段を提供します。
MessageDraft メッセージiアプリの送信用メッセージを定義します。
MessageReceived ネイティブから取得したメッセージiアプリの受信メッセージを定義します。
MessageSent ネイティブから取得したメッセージiアプリの送信メッセージを定義します。
MovieStore 携帯電話のネイティブの動画データ管理機能にアクセスする手段を提供します。
OwnerProfile マイプロフィールのデータを管理する実装クラスです。
PhoneBook 携帯電話のネイティブの電話帳管理機能にアクセスする手段を提供します。
PhoneBookGroup 携帯電話のネイティブの電話帳グループ管理機能にアクセスする手段を提供します。
PhoneBookParam 電話帳データの新規登録用のパラメータを定義します。
Schedule 携帯電話のネイティブのスケジューラ機能にアクセスする手段を提供します。
SoundStore 携帯電話のネイティブのサウンドデータ管理機能にアクセスする手段を提供します。
Toruca トルカデータを定義します。
TorucaStore 携帯電話のネイティブのトルカデータ管理機能にアクセスする手段を提供します。
 

例外の概要
InterruptedOperationException 競合条件などにより、 ユーザインタフェース操作がユーザの意図によらず終了させられた場合に発生する例外です。
MailException メールの送受信に関連する例外です。
StoreException ネイティブの管理データへのアクセス例外を定義します。
 

パッケージ com.nttdocomo.system の説明

電話帳機能やメール機能など、 携帯電話ネイティブに備わっている機能を利用するクラスを定義します。

携帯電話ネイティブに備わっている機能に関する用語を以下に示します。
用語意味
デジタルテレビ 地上デジタルテレビジョン放送。
デジタルテレビアプリケーション 地上デジタルテレビジョン放送のワンセグサービス視聴アプリケーション。

携帯電話ネイティブのデータへのアクセス方法の大原則

このパッケージには、 携帯電話のネイティブのデータにアクセスできるクラスがいくつか含まれています。 これらのクラスがネイティブのデータにアクセスする際の共通の振る舞いを、 大原則として、以下のように規定します。

なお、ネイティブのデータの種類によっては、 この規定と矛盾する規定をしているものがありますが、 その場合は各クラス、各メソッドに記述されている規定が優先します。 また、メール機能やメッセージ i アプリ機能を提供する

には、この規定は一切適用されません。

[DoJa-5.0 (903i) 以降]
デコメール機能とマイプロフィール機能を提供する以下についても、 大原則の規定は一切適用されません。

ネイティブのデータへのアクセスモデル

Java アプリケーションからは、 各ネイティブのデータの種類(電話帳、発着信履歴、...)毎に、 そのエントリの集合が存在しているかのように見えます。 例えば、電話帳の場合は、1 つのメモリ番号に登録されているデータ (ふりがな、名前、電話番号、...)が 1 つのエントリとなり、 そのエントリの集合が電話帳データということになります。

これらのエントリには、それぞれ所属している集合の中で一意で、 かつ永続的な ID (エントリ ID) が振られており、 このエントリ ID を指定することで、 ネイティブのデータの特定のエントリを参照することができます。

DoJa API では、各ネイティブのデータの種類毎に、1つのクラスを用意しています。 クラスそのものはエントリの集合を表し、 そのクラスのインスタンスは、その集合に所属する各エントリを表しています。 すなわち、エントリの集合に対する操作を行う以下のメソッドは、 クラスメソッド(スタティックメソッド)として提供されています。

エントリの集合を表す各クラスには、そのエントリの個々のデータ (電話帳エントリの場合には、ふりがな、電話番号など) へアクセスするメソッドがインスタンスメソッドとして用意されています。 なお、個人情報のような security sensitive なデータは XObject のサブクラスのオブジェクトとして取得され、 これらのデータを携帯電話外へ持ち出すことは出来ません。

エントリ ID に関する規定

ネイティブのデータの種類毎に、各エントリには一意な ID がつけられています。 すなわち、電話帳の異なるエントリ同士が 同じ ID であることは有りませんが、 電話帳のあるエントリとブックマークのあるエントリは、 同じエントリ ID である可能性があります。

エントリ ID は、同じエントリであれば常に同じ ID です。 例えば、参照するアプリケーションによって、 同じエントリに対して異なる ID が与えられることはありません。 また、エントリ ID をスクラッチパッド等に保存しておけば、 アプリケーションを再起動した後でも、そのエントリ ID を元に、 同一のエントリへアクセスできることが保証されています。 ただし、ユーザがそのエントリを編集、上書きした場合に、 編集前とは異なるエントリ ID が付与されることも有ります。

エントリ ID は、メモリ番号などの、 ネイティブ機能においてユーザが確認できる番号とは別のものであり、 その生成規則は機種依存です。

区間 [-256, 0] に属する整数は、 有効なエントリ ID として使用されることは有りません。 登録の失敗を示すなどの、特別な用途に使用されます。

エントリ取得 (selectEntrygetEntry) 時の振る舞い

エントリは、 selectEntry()getEntry(int) メソッドにより取得することができます。

selectEntry メソッドは、 ユーザの選択によりエントリを取得するメソッドです。 このメソッドを呼び出すと、 アプリケーションがサスペンドしてネイティブのユーザインタフェース (電話帳の場合は電話帳選択画面)が起動し、取得するエントリをユーザが選択します。 選択後、アプリケーションはレジュームし、 戻り値として、そのエントリが格納されているオブジェクト (電話帳の場合は PhoneBook オブジェクト) が得られます。

getEntry(int) メソッドは、 ユーザの選択によらず、エントリ ID を指定してエントリを取得するメソッドです。 アプリケーションがサスペンドすることなく、 指定された ID のエントリが取得できます。

これらのメソッドによりデータBOX内のデータをエントリとして取得す る場合、取得で きるエントリの種類は、エントリ ID のみ取得時 に取得できるエントリ ID の種類とは異なります。

エントリ ID のみ取得 (selectEntryId) 時の振る舞い

エントリ ID のみを selectEntryId() メソッドにより取得することができます。 このメソッドを呼び出すと、 アプリケーションがサスペンドしてネイティブのユーザインタフェース (画像データの場合は画像データ選択画面)が起動し、取得するエントリをユーザが選択します。 選択後、アプリケーションはレジュームし、 戻り値として、そのエントリの ID が得られます。

このメソッドによりデータBOX内のデータのエントリ ID を取得する場合、 取得できるエントリ ID の種類は、エントリ取得時 に取得できるエントリの種類とは異なります。

エントリ登録(addEntry)時の振る舞い

エントリの新規登録は、addEntry メソッドにより行うことができます。 このメソッドを呼び出すと、 アプリケーションがサスペンドして ネイティブのユーザインタフェース(電話帳の場合は電話帳登録画面)が起動します。 登録画面には addEntry メソッドの引数に指定した内容が反映されています。 ユーザは、このネイティブのユーザインタフェースを通して、 登録内容をそのままあるいは変更して登録することができます。 登録後、アプリケーションはレジュームし、 戻り値から登録されたデータのエントリ ID が得られます。 このエントリ ID を getEntry(int) メソッドの引数に指定すると、 登録したエントリを取得することができます。

登録するデータの内容によって、 引数の異なる複数の addEntry メソッドが提供されることがあります。 たとえば、PhoneBook クラスの場合、電話帳グループを名前で指定する PhoneBook.addEntry(String, String, String[], String[], String) メソッド、電話帳グループを ID で指定する PhoneBook.addEntry(String, String, String[], String[], int) メソッドなどがあります。

新規登録用オブジェクトについて

ネイティブのデータの種類によっては、 新規登録専用のオブジェクトが定義されていることがあります (電話帳の場合は PhoneBookParam)。 新規登録用オブジェクトは、コンストラクタにより生成することができ、 そのオブジェクトを addEntry の引数に渡すことで、 エントリの新規登録を行うことができます。

エントリ登録時の文字列の扱い

エントリ登録時にパラメータとして渡される文字列の扱いは以下の通りです。 ここで「取り除く」「削除」などと書かれている処理は、全て addEntry 時に行われ、 新規登録用オブジェクトに対する設定時にはそのような処理は行われません。 また、 「登録できない」とは、 対応するネイティブの登録画面でユーザが入力できないことを表します。

ネイティブのデータとして登録できない文字が含まれている場合:

登録時に渡された文字列が、 実装が想定している範囲から外れている文字を含んでいる場合は、 それらの文字を全て取り除くか、 全て空白 (0x20) に置換するか、 全て '?' (0x3F) に置換した後にネイティブの登録機能に渡されます (空白そのものが登録できない文字である場合に全て空白に置換されることはありません。 同様に、'?' そのものが登録できない文字列である場合に全て '?' に置換されることはありません)。 この時に例外は発生しませんが、 削除された結果が空文字列("")になった場合には、 最初から空文字列が指定された場合と同様に振る舞います。

なお、この大原則では、改行文字を含む制御文字 (0x00〜0x1F、0x7F) は、 常に「登録できない文字」として取り扱われます。

ネイティブのデータとして登録できる最大バイト数を超える文字列が指定された場合:

登録時に渡された文字列をデフォルトエンコーディングで評価した場合のバイト数が、 実装が想定している最大バイト数を超えている場合は、 超過分の文字が削除された後にネイティブの登録機能に渡されます。 これにより例外は発生しません。

null や空文字列("")が指定された場合:

その項目に何も入力されていない状態で登録画面が表示されます。 ただし、その登録機能にとって必須の項目に対して null や空文字列が指定された場合には、 どのように登録処理がなされるのかは機種依存ですが、 ネイティブの登録処理の動作に従います。いずれの場合でも例外は発生しません。