com.docomostar.system
クラス Schedule

Object
  上位を拡張 com.docomostar.system.Schedule

public final class Schedule
extends Object

携帯電話のネイティブのスケジューラ機能にアクセスする手段を提供します。

このクラスのインスタンスは、 携帯電話のネイティブのスケジュールデータの 1 つのエントリを表します。

このクラスに定義されているクラスメソッドの使い方や、 ネイティブのデータへのアクセス方法に関する規定の大原則は com.docomostar.system パッケージの記述を参照して下さい。 ただし、エントリ取得機能の一部 (selectEntry) は提供されず、 エントリ登録機能 (addEntry(ScheduleParam)) については、 下記の点が大原則と異なります。

エントリ登録時の改行文字の扱いについて:
改行文字 (単独の "¥n"、 単独の "¥r"、または "¥r¥n" のいずれか) は、 大原則では「登録できない文字」として扱われますが、 スケジュールの詳細 (description 引数) には改行が登録可能な実装もあります。
改行が登録可能な実装の場合は、 いずれの改行文字も 1 つの改行として扱われます。
[Star-1.1 まで]
改行が登録不可能な実装の場合は、 大原則通り、空白や '?' に置換されたり、削られたりします。
[Star-1.2 以降]
改行が登録不可能な実装の場合は、大原則通り、半角中点(U+FF65)に置換されます。

エントリ登録時に 引数 param に渡す ScheduleDate オブジェクトの設定により、 スケジュールの繰り返し回数を設定できます。
指定可能な繰り返し回数の値の範囲は機種依存となります。 ネイティブで扱える繰り返し回数の範囲外の値が指定された場合 のふるまいは、ネイティブの登録機能の実装に依存します。 これにより例外は発生しません。

同様に、エントリ登録時に 引数 param に渡す ScheduleDate オブジェクトの設定により、 「1回限り」 「毎日」 「毎週」 「毎月」 「毎年」 のスケジュール時刻を設定できます。 ただし、 いずれの日時指定タイプがサポートされているか、 そして、その日時指定タイプが期間の集合に対応しているかどうかは、 ネイティブのスケジューラ機能に依存します。 この端末でサポートされる日時指定タイプ、 期間の集合に対応する日時指定タイプは、別個に取得する必要があります。 この端末でサポートされる日時指定タイプを取得するには、 getSupportedTypes() を使用して下さい。 また、期間の集合への対応有無を取得するには、 getMultiRepeatableTypes() を使用して下さい。

ScheduleDateのネイティブスケジューラへの準拠について:
スケジュールの新規登録に使用する項目の解釈は、 ネイティブスケジューラに備わっている機能に準拠します。

ミニマムスペック:

導入されたバージョン:
Star-1.0

メソッドの概要
static int addEntry(ScheduleParam param)
          ユーザ操作によりスケジュールを新規登録します。
static int[] findByDate(java.util.Calendar date)
          日付を指定して、検索条件に合致したスケジュールのエントリ ID をユーザ操作なしに取得します。
 boolean getAlarm()
          アラームの鳴動設定の有無を取得します。
 ScheduleDate getDate()
          スケジュールの日時を取得します。
 XString getDescription()
          スケジュールの詳細を取得します。
static Schedule getEntry(int id)
          スケジュールのエントリ ID を指定して、 ユーザ操作なしにスケジュールのエントリを取得します。
 int getId()
          スケジュールのエントリ ID を取得します。
 Location getLocation() [iアプリオプションAPI]
           位置情報を取得します。
static int getMultiRepeatableTypes()
          スケジュール時刻のタイプのうち、期間の集合をサポートしているものを取得します。
 XString getSummary()
          スケジュールの件名を取得します。
static int getSupportedTypes()
          サポートしているスケジュール時刻のタイプを取得します。
 
クラス Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

メソッドの詳細

getSupportedTypes

public static int getSupportedTypes()
サポートしているスケジュール時刻のタイプを取得します。

ScheduleDate.ONETIMEScheduleDate.DAILYScheduleDate.WEEKLYScheduleDate.MONTHLYScheduleDate.YEARLY、 のうち、 この端末がサポートしているスケジュール時刻タイプ(日時指定タイプ)の論理和を返します。 すべての日付指定タイプが必ずサポートされているため、常に
31( = ONETIME|DAILY|WEEKLY|MONTHLY|YEARLY)
が返ります。

戻り値:
サポートしているスケジュール時刻のタイプを返します。
例外:
IllegalStateException -
ミニアプリ実行時に呼び出された場合に発生します。

getMultiRepeatableTypes

public static int getMultiRepeatableTypes()
スケジュール時刻のタイプのうち、期間の集合をサポートしているものを取得します。

ScheduleDate.WEEKLYScheduleDate.MONTHLYScheduleDate.YEARLY、 のうち、 この端末がサポートしている期間の集合に対応したスケジュール時刻タイプ(日時指定タイプ)の論理和を返します。 例えば、「毎週」「毎月」「毎年」をサポートしている場合、
28( = WEEKLY|MONTHLY|YEARLY)
が返ります。

戻り値:
スケジュール時刻のタイプのうち、期間の集合をサポートしているものを取得します。
例外:
IllegalStateException -
ミニアプリ実行時に呼び出された場合に発生します。

addEntry

public static int addEntry(ScheduleParam param)
                    throws InterruptedOperationException
ユーザ操作によりスケジュールを新規登録します。

引数 param に含まれる「スケジュール日時」が null の場合、 スケジュール登録画面が起動された日付が指定されたことになります。 その場合に時刻がいつに設定されるかは機種依存です。 また、引数 param に含まれる「スケジュール日時」が不正な場合 (開始日時に指定されている日時よりも過去の日時が終了日時に指定されている場合など)、 「スケジュール日時」がどのように設定されるかは機種依存です。

ADF に AccessUserInfo キーの指定が必要です。 上記以外の動作の詳細については、このクラスの説明、 ならびにその説明から引用されている com.docomostar.system パッケージに記述されている説明を参照して下さい。

引数 param に含まれる「スケジュール日時」の開始日時、終了日時は、 ローカルタイムゾーン下で再評価された上でネイティブのスケジュール機能に渡されます。 例えば、ローカルタイムゾーンが JST (+0900) である環境下では、 「スケジュール日時」の開始日時に 10:00 (+0000) が格納されていた場合、 19:00 がネイティブのスケジュール機能に渡されます。

引数 param に含まれる「スケジュール日時」の開始日時、終了日時が、 ネイティブのスケジュール機能に渡される際には、時刻に設定された「秒」、および「ミリ秒」の値は切り捨てられます。

引数 param に含まれる「スケジュール日時」の 日時指定タイプが期間の集合に対応していないにもかかわらず、期間の集合に値が設定されている場合の動作は ネイティブスケジューラ依存となります。

データ保存領域の容量を超えているために登録できない場合は、 ユーザが登録操作をキャンセルした場合と同様の値を返します。

パラメータ:
param - 登録するスケジュールを指定します。
戻り値:
登録されたエントリのIDを返します。 ユーザが登録操作をキャンセルした場合、-1 を返します。
例外:
NullPointerException -
引数 param が null の場合に発生します。
IllegalStateException -
ミニアプリ実行時に呼び出された場合に発生します。
IllegalArgumentException -
引数 param に含まれる開始日時、終了日時のいずれかに サポートされない範囲の日時(例えば、1900年など)が指定された場合に発生します。
IllegalArgumentException -
引数 param に含まれる日時指定タイプが、 サポートされない形式である場合に発生します。 ただし、本モデルではすべての日時指定タイプ形式がサポートされるため、この例外は発生しません。
SecurityException -
ADF に AccessUserInfo キーの指定がないアプリケーションがこのメソッドを呼び出した場合に発生します。
SecurityException -
ロック機能などのネイティブ独自のセキュリティ設定により、 スケジュールを登録できない場合に発生します。
InterruptedOperationException -
競合条件などにより、登録操作が異常終了した場合に発生します。

findByDate

public static int[] findByDate(java.util.Calendar date)
日付を指定して、検索条件に合致したスケジュールのエントリ ID をユーザ操作なしに取得します。

検索対象はスケジューラの通常スケジュールです。

検索項目は 日付(『年』『月』『日』)です。 検索ルールは以下の通りです。

検索ルール:
引数 date に指定した日付について、ネイティブスケジューラの日表示画面で表示されるものと 同じスケジュールが検索結果となります。
したがって、検索結果はネイティブスケジューラの実装に依存します。

例:
  • 開始日時: 2000/01/01 (土) 07:50
  • 終了日時: 2000/01/01 (土) 19:10
  • 繰り返し設定: [毎週:土、火]
  • 繰り返し回数: ScheduleDate.COUNT_INFINITE
このようなスケジュールは、このメソッドの引数 date に 2000/01/01 以降で、土曜日、火曜日のいずれかの曜日となる日付 が指定された場合検索条件に合致します。

引数 date に設定されている日時は、 ローカルタイムゾーン下で再評価された上でネイティブのスケジュール検索機能に渡されます。 例えば、ローカルタイムゾーンが JST (+0900) である環境下では、 引数 date に 11/10 20:00 (+0000) が格納されていた場合、 11/11 05:00 (+0900) と解釈されるため、 11/11 の日付がネイティブのスケジュール検索機能に渡されます。

パーミッションとして携帯電話情報の参照が許可されているトラステッド Star アプリケーションからのみ使用可能です。 パーミッションとして携帯電話情報の参照が許可されていないアプリケーションから使用された場合、アプリケーションは強制終了します。

パラメータ:
date - 検索対象の日時を指定します。
戻り値:
スケジュールのエントリ ID を配列で返します。 該当するスケジュールが存在しない場合は null を返します。
例外:
NullPointerException -
引数 date に null が指定された場合に発生します。
SecurityException -
パーミッションとして携帯電話情報の参照が許可されているが、 Star アプリ個別のユーザ設定により許可されない場合に発生します。
SecurityException -
ロック機能などのネイティブ独自のセキュリティ設定により、 スケジュールのエントリを取得できない場合に発生します。
IllegalArgumentException -
引数 date にシステムが提供している以外のオブジェクト (Calendar クラスを継承した未知のクラスのオブジェクト) が 渡された場合に発生します。

getEntry

public static Schedule getEntry(int id)
                         throws StoreException
スケジュールのエントリ ID を指定して、 ユーザ操作なしにスケジュールのエントリを取得します。

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

終日設定のスケジュールのエントリを取得した場合には、開始時刻に 00:00:00.000、 終了時刻に 00:00:00.000 を設定して返します。
ネイティブ日時指定タイプが ONETIME もしくは DAILYの場合には、期間の集合に null を設定して返します。
ネイティブ日時指定タイプが ONETIME の場合には、 繰り返し回数に 1 を設定して返します。
ネイティブのスケジュールレコードが繰り返し回数に対応していなかった場合、もしくは 繰り返し回数に値が設定されていなかった場合は、繰り返し回数に COUNT_INFINITE を設定して返します。
ネイティブのスケジュールレコードが開始時刻および、終了時刻の秒以下の桁に値を設定していない場合、 秒以下の桁には 00.000 を設定して返します。

上記以外の動作の詳細については、このクラスの説明、 ならびに、その説明から引用されている com.docomostar.system パッケージに記述されている説明を参照して下さい。

パラメータ:
id - 取得するスケジュールのエントリ ID を指定します。
戻り値:
スケジュールのエントリを返します。
例外:
SecurityException -
パーミッションとして携帯電話情報の参照が許可されているが、 Star アプリ個別のユーザ設定により許可されない場合に発生します。
SecurityException -
ロック機能などのネイティブ独自のセキュリティ設定により、 スケジュールのエントリを取得できない場合に発生します。
StoreException -
(NOT_FOUND)
指定した ID のエントリが存在しない場合に発生します。 シークレット設定されたスケジュールのエントリをシークレット解除された状態で取得しようとした場合にも発生します。

getId

public int getId()
スケジュールのエントリ ID を取得します。

戻り値:
スケジュー 繝代