com.nttdocomo.system
クラス CallRecord

Object
  拡張com.nttdocomo.system.CallRecord

public final class CallRecord
extends Object

携帯電話のネイティブの音声発着信履歴機能にアクセスする手段を提供します。

音声発着信履歴データの取得機能を提供します。 getLastRecordメソッドを実行することにより、 端末に保存されている最新の音声発着信履歴を取得することができます。 取得されたエントリには、 相手の電話番号(XString)、 相手の電話番号が登録されている電話帳エントリのID、 日時(XStringとして取得可能)、 接続が成功したか否かの情報、 発着信の種別 が設定されています。

日時のフォーマット
フォーマットのパターンに利用される文字の意味は以下のとおりです。

文字 意味 表示法
y 年(西暦) 2002
M August や Aug や 8
d 数値 1
h 時(1〜12) 数値 6
k 時(0〜11) 数値 6
H 時(1〜24) 数値 18
K 時(0〜23) 数値 18
m 数値 56
E 曜日(英) テキスト Thursday
e 曜日(日) テキスト
A 午前/午後 テキスト 午前
a AM/PM テキスト AM
` エスケープ 区切り文字
`` 引用符 リテラル '

パターン文字の連続数によってフォーマットが変わる場合があります。 フォーマットを変えるだけであり、表示桁数を直接表すわけではありません。 パターン文字の連続数は、yyの場合、2です。

数値表示形式は、文字の連続数は最小桁数を示します。 文字の連続数が実際の桁数よりも大きい場合、0 が付加されます。 すなわち、12分を示す場合、 m は 12 と表示され、 mm は 12 と表示され、 mmm は 012 と表示され、 mmmm は 0012 と表示されます。

年表示形式は、2つの場合は特別扱いされて下2桁で表示します。 そうでない場合は、数値表示形式と同様に取り扱われます。

テキスト表示形式は、4以上の場合、フル形式使用します。 4未満の場合、短縮された形式があればそれを利用します。

月表示形式は、3以上の場合テキスト表示形式として扱われます。 2以下の場合、数値表示形式として扱われます。

a〜z、A〜Zの文字はすべてパターン文字として予約されています。 パターン文字以外の表記のために使用する場合、`(バッククォート) で囲みます。 ` 自身を表示する場合には、`` と連続して記述します。

無効なパターン文字がある場合、例外がスローされます。 また、フォーマットパターン文字列にa〜z、A〜Zのパターン文字が含まれない場合、 不正なパターン文字列とみなされます。

例:

フォーマットパターン 結果
"yyyy-MM-dd hh:mm (e)" 2002-08-01 07:12 (木)
"`Received date: `EEE, MMM d, 'yy" Received date: Thu, Aug 1, '02
"EEEE, MMMM d, y" Thursday, August 1, 2002
"EEEEEE, MMMMMM d, yyyyyy" Thursday, August 1, 002002
"Ah時mm分" 午前11時21分

導入されたバージョン:
DoJa-3.0 (505i)

フィールドの概要
static int CALL_IN
          着信履歴を示す履歴タイプです(=0)。
static int CALL_OUT
          発信履歴を示す履歴タイプです(=1)。
static int TYPE_DATA_CONNECTION
           64K データ通信を表す発着信の種別です(=2)。
static int TYPE_OTHER [iアプリオプションAPI]
           その他の発着信や通信を表す発着信の種別です(=4)。
static int TYPE_PPP_PACKET_CONNECTION [iアプリオプションAPI]
           PPP パケット通信を表す発着信の種別です(=3)。
static int TYPE_TEL
           音声発着信を表す発着信の種別です(=0)。
static int TYPE_TEL_AV
           テレビ電話発着信を表す発着信の種別です(=1)。
 
メソッドの概要
 XString getDateString(String pattern)
          発着信日時(XString)を取得します。
 XString getDateString(String pattern, java.util.TimeZone zone)
          指定されたタイムゾーンを使用して、発着信日時(XString)を取得します。
static CallRecord getLastRecord(int type)
          発着信履歴の最新のエントリを取得します。
 int[][] getPhoneBookID()
          相手の電話帳エントリIDを取得します。
 XString getPhoneNumber()
          相手の電話番号(XString)を取得します。
 Integer getTelType()
           発着信の種別を取得します。
 Boolean isSucceeded()
          接続が成功したか否かを取得します。
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

CALL_IN

public static final int CALL_IN
着信履歴を示す履歴タイプです(=0)。

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

CALL_OUT

public static final int CALL_OUT
発信履歴を示す履歴タイプです(=1)。

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

TYPE_TEL

public static final int TYPE_TEL
音声発着信を表す発着信の種別です(=0)。

導入されたバージョン:
DoJa-3.5 (900i)
関連項目:
定数フィールド値

TYPE_TEL_AV

public static final int TYPE_TEL_AV
テレビ電話発着信を表す発着信の種別です(=1)。

導入されたバージョン:
DoJa-3.5 (900i)
関連項目:
定数フィールド値

TYPE_DATA_CONNECTION

public static final int TYPE_DATA_CONNECTION
64K データ通信を表す発着信の種別です(=2)。

導入されたバージョン:
DoJa-3.5 (900i)
関連項目:
定数フィールド値

TYPE_PPP_PACKET_CONNECTION

public static final int TYPE_PPP_PACKET_CONNECTION [iアプリオプションAPI]
PPP パケット通信を表す発着信の種別です(=3)。

導入されたバージョン:
DoJa-3.5 (900i)
関連項目:
定数フィールド値

TYPE_OTHER

public static final int TYPE_OTHER [iアプリオプションAPI]
その他の発着信や通信を表す発着信の種別です(=4)。

導入されたバージョン:
DoJa-3.5 (900i)
関連項目:
定数フィールド値
メソッドの詳細

getLastRecord

public static CallRecord getLastRecord(int type)
発着信履歴の最新のエントリを取得します。 最後の発着信ではなく、発着信履歴に残っている最新のエントリを返します。

取得されたエントリには、 相手の電話番号(XString)、 相手の電話番号が登録されている電話帳エントリのID、 日時(XStringとして取得可能)、 接続が成功したか否かの情報、 発着信の種別が設定されています。

ただし、発信履歴の場合、 日時、接続が成功したか否かの情報、 ならびに発信の種別が設定されているかどうかは機種依存です。

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

パラメータ:
type - 取得する履歴のタイプを指定します。 CALL_INCALL_OUT のいずれかを指定します。
戻り値:
取得した履歴のエントリを返します。 履歴がない場合、nullを返します。
例外:
IllegalArgumentException - 引数 type の値が不正な場合に発生します。
SecurityException - パーミッションとして携帯電話情報の参照が許可されているが、 iアプリ個別のユーザ設定により許可されない場合に発生します。
SecurityException - ロック機能などのネイティブ独自のセキュリティ設定により、 発着信履歴を取得できない場合に発生します。
IllegalStateException - [DoJa-4.0 (901i) 以降] UIM読み込み中の場合に発生します。

getPhoneBookID

public int[][] getPhoneBookID()
相手の電話帳エントリIDを取得します。 相手の電話番号が登録されている電話帳エントリのIDを返します。

戻り値の配列をint [][] idとすると、 id[i][0]には、i番目に見つかった電話帳エントリIDそのものが返ります。 id[i][1]には、その電話帳エントリに登録されている電話番号中の インデックス値が返ります。 すなわち、相手の電話番号は、
PhoneBook.getEntry(id[i][0]).getPhoneNumber(id[i][1])です。

複数のエントリにマッチする場合、 そのすべてのエントリを返すかどうかは機種依存ですが、 少なくとも1つのエントリの情報を返します。

[DoJa-4.1 (902i) 以降]
PTT呼発信履歴の場合、null を返します。

戻り値:
相手の電話帳エントリIDを返します。 電話帳エントリに登録されていない場合、nullが返ります。 返される配列は、このオブジェクトが内部で保持している配列のコピーです。

getPhoneNumber

public XString getPhoneNumber()
相手の電話番号(XString)を取得します。

非通知設定や公衆電話からの着信履歴の場合、 実際に端末の着信履歴において使用される、 それらを表す文字列(XString)を返します。 すなわち、"非通知設定"や"公衆電話"などの文字列を保持する XStringを返します。

[DoJa-4.1 (902i) 以降]
PTT呼発信履歴の場合、null を返します。

戻り値:
相手の電話番号を返します。

getDateString

public XString getDateString(String pattern)
発着信日時(XString)を取得します。
発信履歴の場合、実装によっては取得できない場合があります。
フォーマット方法については、 クラス説明を参照してください。

[DoJa-5.1 (905i) 以降]
このメソッドは発着信日時を、この音声発着信が記録された時のローカルタイムゾーンの時刻に変換して返します。

パラメータ:
pattern - 日時のフォーマットを記述するパターンを指定します。
戻り値:
指定したパターンでフォーマットされた発着信日時を返します。 発信履歴において日時取得をサポートしない場合、または、 発着信時に端末の時刻が設定されていなかったために発着信日時が取得できない場合は、 null を返します。
例外:
NullPointerException - 引数 pattern が null である場合に発生します。
IllegalArgumentException - 引数 pattern に不正なフォーマット文字列が指定された場合に発生します。

getDateString

public XString getDateString(String pattern,
                             java.util.TimeZone zone)
指定されたタイムゾーンを使用して、発着信日時(XString)を取得します。
発信履歴の場合、実装によっては取得できない場合があります。
フォーマット方法については、 クラス説明を参照してください。

このメソッドは発着信日時を、指定されたタイムゾーンの時刻に変換して返します。

引数 zone には、TimeZone.getTimeZone(String) にてサポートされる全てのタイムゾーンを指定できます。 引数 zone に null が指定された場合は、 getDateString(String) と同様に振る舞います。

パラメータ:
pattern - 日時のフォーマットを記述するパターンを指定します。
zone - 使用するタイムゾーンを指定します。
戻り値:
指定したパターンでフォーマットされた発着信日時を返します。 発信履歴において日時取得をサポートしない場合、または、 発着信時に端末の時刻が設定されていなかったために発着信日時が取得できない場合は、 null を返します。
例外:
NullPointerException - 引数 pattern が null である場合に発生します。
IllegalArgumentException - 引数 pattern に不正なフォーマット文字列が指定された場合に発生します。
IllegalArgumentException - 引数 zone にシステムが提供している以外のオブジェクト (TimeZone クラスを継承した未知のクラスのオブジェクト) が渡された場合に発生します。
導入されたバージョン:
DoJa-5.1 (905i)

isSucceeded

public Boolean isSucceeded()
接続が成功したか否かを取得します。
発信履歴の場合、実装によっては取得できない場合があります。

戻り値:
接続が成功した場合、Boolean.TRUE を返します。 不在などにより接続されなかった場合、Boolean.FALSE を返します。 発信履歴において接続が成功したか否かの取得をサポートしない場合、 null を返します。

getTelType

public Integer getTelType()
発着信の種別を取得します。
発信履歴の場合、実装によっては取得できない場合があります。

[DoJa-4.1 (902i) 以降]
PTT呼発着信履歴の場合、TYPE_OTHER を返します。

戻り値:
音声発着信の場合、TYPE_TEL を表す Integer オブジェクトを返します。 テレビ電話発着信の場合、 TYPE_TEL_AV を表す Integer オブジェクトを返します。 発信履歴において発着信の種別の取得をサポートしない場合、null を返します。
導入されたバージョン:
DoJa-3.5 (900i)