• 検索結果がありません。

iアプリAPI利用上の注意点

第 9 章 待ち受けアプリケーション

9.4 iアプリAPI利用上の注意点

待ち受けアプリケーションが待ち受け起動されている場合、その特性から、iアプリ API を利用 する上で通常のiアプリとは異なる注意点があります。本項では、これらの注意点について解説し ます。

9.4.1 ユーザーインタフェース

● フレームに設定されたソフトキーラベルは、待ち受けアプリケーションが非活性化状態または休眠状態にあ る間は表示されません。これらの状態では、ソフトキーラベル表示領域はネイティブOSが使用します。待 ち受けアプリケーションが活性化状態に移行した際に、カレントフレームに設定されているソフトキーラベ ルがソフトキーラベル表示領域に表示されます。

● Panel使用時、非活性化状態にある待ち受けアプリケーションからフォーカスに関する操作(フォーカスマ

ネージャの設定やコンポーネント間のフォーカス移動)を行うことはできません。非活性化状態の待ち受け アプリケーションがフォーカス操作のメソッドを呼び出しても、そのメソッドは何もせずアプリケーション プログラムに復帰します。

● Canvas使用時、非活性化状態ではキーパッドの状態を取得(Canvas.getKeyPadState()メソッド)す ることはできません。非活性化状態の待ち受けアプリケーションがこのメソッドを呼び出すと、何もキーが 押されていない状態を示す値0が返されます。

● 高レベルイベント、低レベルイベントそれぞれについて、非活性化状態の待ち受けアプリケーションへの通 知の有無は以下の通りです。原則的にキー操作を伴うイベントは、非活性化状態の待ち受けアプリケーショ ンには通知されません。

高レベルイベント

イベントの種類 通知の有無 備考

コンポーネントイベント

BUTTON_PRESSED ×

SELECTION_CHANGED ListBoxクラスのselect()、deselect()メソッドにより 選択状態が変化した場合に通知されます。

TEXT_CHANGED TextBoxクラスのsetText()メソッドによりテキストが再

設定された場合に通知されます。

キーイベント ×

ソフトキーイベント × メディアイベント タイマーイベント

低レベルイベント

Copyright Ⓒ 2008-2012 NTT DOCOMO, Inc. All Rights Reserved.

イベントの種類 通知の有無 備考

キープレスイベント × ソフトキー操作を含みます。

キーリリースイベント × ソフトキー操作を含みます。

レジュームイベント アップデートイベント タイマーイベント

● Tickerは、活性化状態および非活性化状態ではスクロール動作を行いますが、休眠状態に入るとスクロー

ル動作は停止します。休眠状態から活性化状態または非活性化状態に遷移することで、再度スクロール動作 が行われるようになります。

● プレゼンタ(VisualPresenter、AudioPresenter)オブジェクトは、活性化状態および非活性化状態で は再生処理を行いますが、再生中のプレゼンタオブジェクトは待ち受けアプリケーションが休眠状態に入る と停止します。その際、再生停止イベントは発生しません。また、待ち受けアプリケーションが休眠状態か ら活性化状態または非活性化状態に遷移しても、自動的に再生を再開することはありません。

● タイマー(TimerおよびShortTimer)は、待ち受けアプリケーションが活性化状態および非活性化状態に ある場合に動作します。タイマーが動作している待ち受けアプリケーションが休眠状態に遷移すると、使用 中のタイマーは停止します(stop()メソッドが呼び出された状態)。その後、待ち受けアプリケーションが 休眠状態から活性化状態または非活性化状態に遷移しても、自動的にタイマーの動作を再開することはあり ません。

● CanvasからのIME起動(Canvas.imeOn()メソッドの呼び出し)は、非活性化状態の待ち受けアプリケー ションから行うことはできません。非活性化状態の待ち受けアプリケーションがIMEを起動しようとすると 例外が発生します。

9.4.2 入出力

● 非活性化状態の待ち受けアプリケーションがHTTP(S)通信を行っている場合、通話着信を受けた場合だけで はなく、ユーザー操作により通話発信が行われた場合にも通信が中断されます。この場合、通話着信により 通信が中断された場合と同様に、通信処理のリトライを行う必要があります。iアプリの中断、再開が与え る影響については、3.6項を併せて参照してください。

● 待ち受けアプリケーションは、活性化状態および非活性化状態の場合のみHTTP(S)通信を行うことができま す。あるスレッドがHTTP(S)通信を行っているときに他のスレッドがMApplication.sleep()メソッドを 呼び出して休眠状態に入ると、その通信は中断され例外が発生します。その後、待ち受けアプリケーション が休眠状態から他の状態に復帰すると、通信を行っていたスレッドは通信の例外処理から動作を再開します。

● ScratchPadが不揮発メモリにデータを書き込んでいるときに他のスレッドがMApplication.sleep()メソ

ッドを呼び出して休眠状態に入ろうとすると、実際の休眠状態への遷移はScratchPadへの書き込みが完了す るまで遅延します。なお、ScratchPadをオープンしたまま待ち受けアプリケーションが休眠状態に移行した 場合は、活性化状態または非活性化状態に復帰した後もScratchPadはオープンされたままの状態を保ってお り、継続してデータの書き込みまたは読み込みを行うことができます。

● OBEX外部接続による外部機器との通信は、待ち受けアプリケーションが活性化状態にある場合でのみ可能 です。OBEX外部接続により通信を行っている待ち受けアプリケーションが非活性化状態に遷移すると、通 信は中断され例外が発生します。これは、待ち受けアプリケーションがOBEXクライアントとして動作して いる場合、OBEXサーバーとして動作している場合の双方に適用されます。

Copyright Ⓒ 2008-2012 NTT DOCOMO, Inc. All Rights Reserved.

9.4.3 ハードウェア制御

● 非活性化状態にある待ち受けアプリケーションは、バックライト制御を行うことはできません。非活性化状 態にある待ち受けアプリケーションがPhoneSystem.setAttribute()メソッドでバックライト状態の変 更を指示しても、このメソッドは何も行わず復帰します。

● 活性化状態にある待ち受けアプリケーションはバックライト制御を行うことができますが、待ち受けアプリ ケーションにより点灯されたバックライトは、一定時間経過後システムにより自動的に消灯されます。

● バイブレータ制御は、待ち受けアプリケーションが活性化状態または非活性化状態にある場合に行うことが できます。バイブレータがオンになっている状態で待ち受けアプリケーションが休眠状態に遷移すると、バ イブレータは停止します。待ち受けアプリケーションが活性化状態や非活性化状態に復帰しても、自動的に バイブレータ動作を再開することはありません。

● その他、ユーザーがメニュー操作などで状態を設定できるハードウェアリソースは、原則的に待ち受けアプ リケーションから状態を変更しようとしてもユーザーの設定が優先されます。

9.4.4 アプリケーション連携

● 非活性化状態の待ち受けアプリケーションは、ユーザー操作(Phone.call()メソッドにおける通話発信の 許可確認など)を伴うアプリケーション連携機能のメソッドを呼び出すことはできません。非活性化状態の 待ち受けアプリケーションがこれらのメソッドを呼び出した場合は例外が発生します。

● DoJa-4.0プロファイル以前のiアプリ実行環境では、待ち受けアプリケーションが待ち受け起動されている

場合、どのような状態であってもMApplication.launch()メソッドを使用してブラウザを起動すること はできません。待ち受け起動された待ち受けアプリケーションがブラウザを起動しようとすると例外が発生 します。

これに対しDoJa-4.1プロファイル以降のiアプリ実行環境では、待ち受け起動された待ち受けアプリケーシ ョンであっても、活性化状態であればMApplication.launch()メソッドによるブラウザ起動を行うこと ができます。

Copyright Ⓒ 2008-2012 NTT DOCOMO, Inc. All Rights Reserved.

第 10 章 OBEX 外部接続

DoJa-2.0 プロファイル以降では、赤外線ポートを介してiアプリと外部機器を接続し、通信を行う

ための OBEX 外部接続機能がiアプリ基本 API としてサポートされます。外部機器には DoJa-2.0 プロファイル以降に対応した携帯電話自身も含まれ、またiアプリ仕様では OBEX 外部接続にお けるクライアント API およびサーバーAPI の両方をサポートするため、携帯電話間で名刺やスケジ ュールなどの小さなデータを交換しあうiアプリを容易に開発することができます。

本章では、iアプリ実行環境における OBEX クライアント API、OBEX サーバーAPI、および携帯 電話以外の外部機器をターゲットとしたシステムを開発する際のヒントについて解説します。

なお、OBEX 外部接続機能は IrDA 規格に基づいて実装されますが、本書では IrDA 規格そのもの に関する解説は行いません。これらの規格に関する詳細は、Infrared Data Association の制定してい る各種規格書を参照してください。なお、 DoJa-2.0 プロファイルから現在のプロファイルまでにお ける OBEX 外部接続機能は、以下のバージョンの各規格に準拠しています。

・ Infrared Data Association "Link Manager Protocol version 1.1"

・ Infrared Data Association "Serial Infrared Physical Layer Specification version 1.3"

・ Infrared Data Association "Tiny TP: A Flow-Control Mechanism for use with IrLMP version 1.1"

・ Infrared Data Association "Object Exchange Protocol IrOBEX version 1.2"

・ Infrared Data Association "Specification for Ir Mobile Communications(IrMC) version 1.1"

・ Infrared Data Association "Serial Infrared Link Access Protocol version 1.1"