第 9 章 待ち受けアプリケーション
11.3 外部機器連携起動
Copyright Ⓒ 2008-2012 NTT DOCOMO, Inc. All Rights Reserved.
Copyright Ⓒ 2008-2012 NTT DOCOMO, Inc. All Rights Reserved.
● COMMAND:<起動コマンド>
起動コマンドをASCII形式で指定します(最大250バイト)。ここで指定されている起動コマンドと、iア プリのADFのAllowPushByキーで起動許可が与えられている起動コマンド(AllowPushByキーの値とし て"irda:"以降に指定されるコマンド文字列)が完全に一致していなければ、iアプリを起動することはで きません。
● <パラメータ>
起動されたiアプリに引き渡すパラメータを指定します(オプショナル)。1つのパラメータは以下のフォ ーマットを取ります。
PARAM [;<エンコード指定>][;<文字セット指定>]:<パラメータ名>;<パラメータ値>
※[ ] は省略可能であることを示します。なお、エンコード指定と文字セット指定の位置は入 れ替わっていても構いません。
パラメータ名およびパラメータ値は、iアプリ起動時にIApplication.getParameter()メソッドによ り取得できるパラメータを指定するために使用されます。<パラメータ>は1つのvTriggerオブジェクトに最 大16個まで指定することができます。ただし、全ての<パラメータ>の名前と値の合計長は255バイトに制 限されます。
エンコード指定および文字セット指定は以下のように指定します。
- エンコード指定
ENCODE=<エンコード名> の形式で指定します。エンコード名には"QUOTED-PRINTABLE"または
"BASE64"のいずれかが指定できます。指定がない場合はエンコード指定が行われていないものと見な されます。
- 文字セット指定
CHARSET=<文字セット名> の形式で指定します。現在までのプロファイルにおいて、有効な文字セッ ト名は"SHIFT_JIS"のみです。また、文字セット指定がない場合も"SHIFT_JIS"が指定されたものと 見なされます。
なおvTriggerオブジェクトでは、ボディの内容は7ビットコードで記述されている必要があります。パラメ
ータの名前や値に日本語(SHIFT_JIS)を指定する場合は、必ずQUOTED-PRINTABLE形式またはBASE64 形式でエンコードするようにしてください。エンコードされた日本語パラメータは、指定されたエンコード 種別に従ってiアプリ実行環境で自動的にデコードされ、さらにJavaのStringに変換された上で IApplication.getParameter()メソッドに渡されます。
● END:VTRG
vTriggerオブジェクトの終了を表します。
以下に、vTrigger オブジェクトの記述例を示します。
BEGIN:VTRG VERSION:1.0
ADFURL:http://www.nttdocomo.co.jp/java/a.jam COMMAND:startup_Application_A
PARAM:Param1;i-mode
PARAM;ENCODING=BASE64;CHARSET=SHIFT_JIS:Param2;gomDQYN2g4o=
END:VTRG
OBEX レイヤにおける vTrigger オブジェクトの送信とは、Body ヘッダに vTrigger オブジェクトの
内容を設定し、PUT オペレーションにて送信することをいいます。携帯電話は外部機器からのi
アプリ起動要求に対し、iアプリの起動可否を判断して以下の OBEX レスポンスコードを返しま
す。
Copyright Ⓒ 2008-2012 NTT DOCOMO, Inc. All Rights Reserved.
レスポンスコード OBEXにおける規定 外部機器連携における規定
0xA0 OK, Success 指定されたiアプリの起動が可能である
0xC4 Not Found 指定したiアプリが存在しない
0xE1 Database Locked 指定したiアプリの外部機器からの起動が禁止されている、 または
AllowPushByキーの起動コマンドとvTriggerオブジェクトで受信した 起動コマンドが一致しない
レスポンスコード 0xA0 が外部機器に返された時点では、携帯電話上ではまだiアプリは起動され ていません。iアプリの起動は、携帯電話がレスポンスコードを返却し、赤外線通信が終了された 後に行われます。
以下に、携帯電話にダウンロードされているiアプリと、vTrigger オブジェクトの記述内容の関係 について図示します。
図 17: ダウンロード済みiアプリと vTrigger オブジェクトの記述内容との関係
注意事項:
● 携帯電話ユーザーは、携帯電話の設定により外部機器からのiアプリ起動を禁止することができます。外部 機器からの起動が禁止されている場合、vTriggerオブジェクトを受信してもiアプリの起動は行われません。
iアプリA ADF:
http://www.nttdocomo.co.jp/a.jam AllowPushBy:
Irda:startup_Application_A
iアプリB ADF:
http://www.nttdocomo.co.jp/b.jam AllowPushBy:
Irda:startup_Application_B
① 対応する ADF を使用してダウンロードされたiアプリが携帯電話上に存在し、かつ COMMAND の値が
AllowPushByキーの値に完全一致するため、iアプリAは起動可能。
携帯電話を外部機器の赤外線ポートにかざすことがユーザーのiアプリ起動への同意となるため、携帯電話
(iアプリ実行環境)はiアプリの起動確認は行いません。
② 対応する ADF を使用してダウンロードされたiアプリが携帯電話上に存在するが、COMMAND の値が
AllowPushByキーの値に完全一致しないため、iアプリBは起動不可能。
③ 対応するADFを使用してダウンロードされたiアプリが携帯電話上に存在しないため、iアプリCは起動不 可能。
①
②
③
:
ADFURL: http://www.nttdocomo.co.jp/a.jam COMMAND:startup_Application_A
:
外部機器Aが送出するvTriggerオブジェクト
:
ADFURL: http://www.nttdocomo.co.jp/b.jam COMMAND:startup_B_Application
:
外部機器Bが送出するvTriggerオブジェクト
:
ADFURL: http://www.nttdocomo.co.jp/c.jam COMMAND:startup_Application_C
:
外部機器Cが送出するvTriggerオブジェクト
Copyright Ⓒ 2008-2012 NTT DOCOMO, Inc. All Rights Reserved.
● 外部機器から起動コマンド(vTriggerオブジェクト)を受信するためには、ユーザーはあらかじめ携帯電話 の赤外線ポートへの通電操作を行っている必要があります。赤外線ポートへの通電操作の方法はメーカーに より異なります。
● 外部機器から起動されたiアプリの動作が終了すると、待ち受け状態に復帰します。ただし、外部機器から 起動されたiアプリをユーザーが強制終了した場合、iアプリ終了後にどのような状態に移るかはメーカー により異なります。
● 外部機器からvTriggerオブジェクトを携帯電話に送信する際、そのvTriggerオブジェクトのNameヘッダの 値は末尾(拡張子)が".vtg"となるようにしてください。携帯電話は、受信したオブジェクトの名前の拡張 子が".vtg"である場合に、そのオブジェクトをvTriggerオブジェクトと認識します。