第 9 章 待ち受けアプリケーション
10.4 IrSimple
DoJa-5.1 プロファイル以降の携帯電話の中には、オプショナル機能としてiアプリからの IrSimple
の利用をサポートするものがあります。 IrSimple を利用すると高速、大容量の赤外線通信が行える 一方、一部機能の利用に制限が生じるなどの注意事項もあります。
以下に、iアプリからの IrSimple の利用方法とその注意点について記載します。
IrSimple をサポートする機種のために、 DoJa-5.1 プロファイルでは OBEX 外部接続 API に以下のメ
ソッド、フィールドが追加されています。
● ClientObexConnection.connect(int mode)
OBEXクライアント側から、通信モードを指定して赤外線通信のリンクを確立します(通信モードとは ObexConnectionのCOMM_MODE定数のことです)。IrSimpleを利用するための指定は、connect() メソッドに設定する通信モード引数で行います。
● ObexConnection.getCommMode()
リンクが確立されたコネクションオブジェクトから、現在の通信モードを取得します。
● ObexConnection.COMM_MODE_IRDA
通信モード定数で、従来互換のIrDA通信であることを表します。
● ObexConnection.COMM_MODE_IRSIMPLE_INTERACTIVE
通信モード定数で、IrSimple双方向通信であることを表します。IrSimple双方向通信では、従来のIrDA などと同様に、OBEXサーバーとOBEXクライアントの間でデータ転送の送達確認や再送制御などを行 い、信頼性の高い通信を実現します。
● ObexConnection.COMM_MODE_IRSIMPLE_UNILATERALLY
通信モード定数で、IrSimple片方向通信であることを表します。IrSimple片方向通信では、OBEXクライ アント側から一方通行的にデータを送信し、クライアント・サーバー相互の送達確認や再送制御は行い ません。このため、双方向通信のような高い信頼性は得られませんが、より高速、高効率な通信を行う ことができます。
IrSimple を使用する場合には、OBEX クライアント側iアプリの通信リンク確立処理において、
connect(int)メソッドの引数に ObexConnection.COMM_MODE_IRSIMPLE_INTERACTIVE も しくは ObexConnection.COMM_MODE_IRSIMPLE_UNILATERALLY を指定してください。
IrSimple を使用する場合、従来の IrDA と比較して以下の点が異なります。
・ OBEXクライアントは、GETオペレーションを使用することはできません。IrSimpleを使用する場合、OBEX クライアントはPUTオペレーションのみ使用することができます。さらにIrSimple片方向通信では、1回 の通信リンク確立につき、実行可能なオペレーションの回数は1回に限られます。
・ OBEXクライアントが一度のPUTオペレーションで送信可能なデータサイズの制限は、2Mバイト以内ま でに緩和されます。
なお、 OBEX サーバーが IrSimple に対応していない状況で、 OBEX クライアントが IrSimple の利用
を試みた場合は以下のような動作となることに注意してください。
Copyright Ⓒ 2008-2012 NTT DOCOMO, Inc. All Rights Reserved.
1. OBEXクライアントがIrSimple双方向通信で接続しようとした場合
IrSimpleをサポートしていないOBEXサーバーに対して、OBEXクライアントがIrSimple双方向通信で接
続しようとすると、IrSimpleではなく、従来互換のIrDA通信の通信リンクが確立されます。
2. OBEXクライアントがIrSimple片方向通信で接続しようとした場合
IrSimple片方向通信では、OBEXクライアントはOBEXサーバーがIrSimpleをサポートしているかどうか、
さらには対向側にIrDA機器が存在しているかどうかにも関係なく、一方的にデータを送信し、例外等も 発生することなく正常に処理を完了させます。対向側のOBEXサーバーがIrSimpleをサポートしていない 場合、OBEXクライアントは正常にデータ転送を完了させますが、OBEXサーバー側は接続要求に応答せ ず、受信待ち状態で待ち続けます。
注意事項:
● IrSimpleを使用する際も、Connector.open()メソッドに指定するURL文字列は、通常のIrDA通信を行う 際と同じもの(”obex:/irclient”、” obex:/irserver”)を指定します。
● IrSimpleをサポートしていない携帯電話でClientObexConnection.connect(int)メソッドや
ObexConnection.getCommMode()メソッドを使用した場合、UnsupportedOperationExceptionがス ローされます。
● IrSimple片方向通信では、OBEXクライアントからOBEXサーバーに向けて一方通行的に通信が行われるた
め、OBEXクライアントのリクエストに対してOBEXサーバーがレスポンスを返すことはありません。しか し、iアプリのOBEXサーバーにIrSimple片方向通信を処理させる場合には、ServerObexConnection.
receiveRequest()メソッドでリクエストを受け取ったら、それに対応してServerObexConnection.
sendResponse()メソッドを使用するようにしてください(これらのメソッドの利用方法については10.2.2 項も参照してください)。
【DoJa-5.1】
IrSimpleのためのAPIは、DoJa-5.1プロファイルにて新設されました。
Copyright Ⓒ 2008-2012 NTT DOCOMO, Inc. All Rights Reserved.
第 11 章 アプリケーション連携
DoJa-2.0 プロファイルでは、iアプリと、ブラウザやメーラなど携帯電話上のネイティブアプリケ
ーションとの間での連携起動がサポートされました。また DoJa-3.0 プロファイル以降では、連携 起動の範囲を拡大(iアプリ-iアプリ間など)するとともに、iアプリからブックマーク管理機 能や画像データ管理機能などネイティブ機能の呼び出しをサポートするなどアプリケーション連 携の拡張が図られました。これらの機能を利用することで、iアプリの機能だけでなく携帯電話の 機能をフル活用したサービスをiアプリで提供することができます。
なお、機能の性格上、アプリケーション連携機能の一部はトラステッドiアプリの範囲に含まれま す。本書ではトラステッドiアプリに含まれる機能の解説は行いません。本書で解説される機能は、
トラステッドiアプリ以外の一般のiアプリでも使用することができます。
各プロファイルでサポートされているアプリケーション連携機能の内容は以下の通りです。
※ アプリケーション連携起動
連携機能の概要 DoJa-2.0 以降
DoJa-3.0 以降
DoJa-4.1 以降
DoJa-5.0 以降
ブラウザからのiアプリ起動 ○ ○ ○ ○
iアプリからのブラウザ起動 ○ ○ ○ ○
メーラからのiアプリ起動 ○ ○ ○ ○
外部機器(赤外線ポート)からのiアプリ起動 ○ ○ ○ ○
iアプリからのiアプリ起動 × ○ ○ ○
iアプリからのiアプリ更新機能(JAM)の起動 × ○ ○ ○
※ iアプリからのネイティブ機能呼び出し
連携機能の概要 DoJa-2.0 以降
DoJa-3.0 以降
DoJa-4.1 以降
DoJa-5.0 以降
通話機能の呼び出し(通話発信) ○ ○ ○ ○
通話機能の呼び出し(個体識別情報の参照) △(*1) ○ ○ ○ 電話帳管理機能の呼び出し(電話帳エントリ、電話帳グループの新規登録) × ○ ○ ○ ブックマーク管理機能の呼び出し(ブックマークの新規登録) × ○ ○ ○ スケジュール管理機能の呼び出し(スケジュールの新規登録、iアプリから
のスケジューラの起動) × ○(*3) ○(*3) ○(*3) 画像データ管理機能の呼び出し(画像の新規登録・選択読み込み・ID指定読
み込み) × ○ ○ ○
カメラ機能の呼び出し(撮影および撮影画像の取得) △(*2) ○ ○ ○ 映像データ管理機能の呼び出し(映像データ(iモーション)の新規登録) × × ○ ○ (*1) 個体識別情報の参照は、DoJa-2.1プロファイルでiアプリ基本APIに追加されました。
(*2) カメラ機能の呼び出しは、DoJa-2.0プロファイルではiアプリオプションAPIとして一部の機種でサポートされまし た。DoJa-3.0プロファイルでは、それらの機能を一部強化した上でiアプリ基本APIに取り入れられています。
Copyright Ⓒ 2008-2012 NTT DOCOMO, Inc. All Rights Reserved.
(*3) スケジュール管理機能の呼び出しのうち、iアプリからのスケジューラの起動についてはDoJa-4.1プロファイルまで はiアプリオプションAPIの位置づけです。この機能は、DoJa-5.0プロファイルにてiアプリ基本APIの位置づけに 変更されました。