 |
 |
 |
|

|
|
|
■オープンアプリプレイヤーとは

「オープンアプリプレイヤー」とは、J2ME™ Connected Limited Device Configuration (CLDC) 1.1 (JSR 139)上のMobile Information Device Profile (MIDP) 2.0 (JSR 118) の仕様に基づき作成されたJava™アプリを実行する環境です。

KDDIでは便宜的に、オープンアプリ (Java™) 再生環境を「オープンアプリプレイヤー」、オープンアプリプレイヤーで動作するプログラムを「オープンアプリ」、オープンアプリプレイヤーを搭載した端末を「オープンアプリプレイヤー搭載端末」と表現しています。

| ※ |
CLDC1.1、MIDP2.0の仕様は The Java Community Process (SM) より閲覧できます。 |

|
|

|
|
|
オープンアプリプレイヤーはCLDC1.1/MIDP2.0仕様で作成されたJava™アプレットが動作します。Mobile Media API (JSR135)、Mobile 3D Graphics API for J2ME (JSR184) など、その他の拡張APIには対応していません。

オープンアプリを対応端末にダウンロードするには、JadファイルとJarファイルに2つのファイルが必要です。JadファイルとJarファイルの作成方法については、Java™に関するウェブ、書籍などを参照してください。

以下にオープンアプリプレイヤー特有の仕様に関して説明します。

■Jadファイル仕様

Jadファイルはオープンアプリの内容や振る舞いなどの情報がテキスト表現で記載されたファイルです。Jadは、Java Application Descriptorの略です。

オープンアプリプレイヤーで対応している項目は以下の通りです (必須項目がない場合、インストールエラーとなります)。

属性名 |
必 須 |
内容 |
MIDlet-Name |
○ |
表記名を記載します。3〜32バイトの文字列である必要があります (注1)。 |
MIDlet-Version |
○ |
オープンアプリのバージョンを記載します。数値3桁でn.n.nの書式である必要があります。 |
MIDlet-Vendor |
○ |
開発元を記載します。3〜32バイトの文字列である必要があります。 |
MIDlet-Jar-URL |
○ |
Jarファイルのダウンロード先URLを記載します。5〜256バイトの文字列である必要があります。 |
MIDlet-Jar-Size |
○ |
Jarファイルのサイズをバイト単位で記載します。実際のサイズと一致している必要があります。 |
MIDlet-Icon |
|
オープンアプリのアイコンを指定します。アイコンを指定する事ができます (注1)。 |
MIDlet-Description |
|
オープンアプリの説明を記載できますが、利用されません。1024バイト以内の文字列である必要があります。 |
MIDlet-Data-Size |
○ |
必要とするRMSのサイズを記載します。記載しない場合は32キロバイトとみなされます。 |
MIDlet-Info-URL |
|
オープンアプリの情報が得られるサイトのURLを記載します。記載があった場合、オープンアプリ詳細の画面からサイトへ移動する事が可能になります。256バイト以下の文字列である必要があります。 |
MIDlet-1 |
○ |
Jarファイル内のオープンアプリを指定します。オープンアプリプレイヤーはひとつのJar内部に複数のオープンアプリを格納できません。必ずひとつである必要があります。アイコンを指定する事ができます (注1)。 |
|

| 注1) |
16×16ドット、20×20ドット、24×24ドットのPNG画像に対応しています。
|

| ※ |
Jadファイルは必ずUTF-8で記載されている必要があります。
|

■Jarファイル仕様

オープンアプリを含むクラスファイルや、オープンアプリで利用する画像や音声などのリソースファイルをまとめたファイルです。JarはJava ARchive の略です。
複数のMIDletには対応しておりません。

■Jad、Jarファイルのサイズ上限

オープンアプリプレイヤーは、6キロバイトまでのJadファイル、300キロバイトまでのJarファイルをダウンロードすることができます。300キロバイトを超えた場合は、インストールエラーとなります。

■ディスプレイ

ディスプレイサイズは240×268ドットとなります。
MIDP2.0のフルスクリーン仕様 (Canvas.setFullScreenMode()) に対応しており、利用の際のサイズは240×296ドットが利用可能です。



■オフスクリーンイメージ

作成できるオフスクリーンイメージ (Canvas.setFullScreenMode()) の最大サイズは272×328 (描画可能サイズ + 32ドット) です。

■ソフトキー

6バイトまでの文字列が表示可能です。優先順位が高い物が左側 (SOFT1) に表示されます。3つ以上指定された場合、右側 (SOFT2) に「menu」と表示され、選択式になります。

■フォント

フォントは固定ピッチフォントとして、SMALL、MIDEUM、LARGEがそれぞれ12×12、16×16、20×20ドットのフォントに対応しています。

フォントスタイルはPLAINとUNDERLINEのみ対応しています。

■キーイベントの対応

キーイベントはCanvasクラス、GameCanvasクラスにて以下のものが取得できます。



端末入力 |
x=Canvas.keyPressed (code) |
getGameAction(x) の 変換結果 |
Canvas.getKeyState() の ビット |
0キー |
KEY_NUM0(48) |
0 |
0 |
1キー |
KEY_NUM1(49) |
GAME_A(9) |
GAME_A_PRESSED(512) |
2キー |
KEY_NUM2(50) |
UP(1) |
UP_PRESSED(2) |
3キー |
KEY_NUM3(51) |
GAME_B(10) |
GAME_B_PRESSED(1024) |
4キー |
KEY_NUM4(52) |
LEFT(2) |
LEFT_PRESSED(4) |
5キー |
KEY_NUM5(53) |
FIRE(8) |
FIRE_PRESSED(256) |
6キー |
KEY_NUM6(54) |
RIGHT(5) |
RIGHT_PRESSED(32) |
7キー |
KEY_NUM7(55) |
GAME_C(11) |
GAME_C_PRESSED(2048) |
8キー |
KEY_NUM8(56) |
DOWN(6) |
DOWN_PRESSED(64) |
9キー |
KEY_NUM9(57) |
GAME_D(12) |
GAME_D_PRESSED(4096) |
*キー |
KEY_STAR(42) |
0 |
0 |
#キー |
KEY_STAR(35) |
0 |
0 |
上キー |
-1 |
UP(1) |
UP_PRESSED(2) |
下キー |
-2 |
DOWN(6) |
DOWN_PRESSED(64) |
右キー |
-4 |
RIGHT(5) |
RIGHT_PRESSED(32) |
左キー |
-3 |
LEFT(2) |
LEFT_PRESSED(4) |
選択キー |
-5 |
FIRE(8) |
FIRE_PRESSED(256) |
SOFT1キー |
-6 |
GAME_A(9) |
GAME_A_PRESSED(512) |
SOFT2キー |
-7 |
GAME_B(10) |
GAME_B_PRESSED(1024) |
SOFT3キー |
-20 |
GAME_C(11) |
GAME_C_PRESSED(2048) |
SOFT4キー |
-21 |
GAME_D(12) |
GAME_D_PRESSED(4096) |
CLRキー |
-8 |
0 |
0 |
発信キー |
-10 |
0 |
0 |
|

| ※ |
SOFT3キー、SOFT4キーに対応しない端末も存在します。
|

getKeyCode(x)

x |
getKeyCode(x) の変換結果 |
UP(1) |
-1 |
LEFT(2) |
-3 |
RIGHT(5) |
-4 |
DOWN(6) |
-2 |
FIRE(8) |
-5 |
GAME_A(9) |
KEY_NUM1(49) |
GAME_B(10) |
KEY_NUM3(51) |
GAME_C(11) |
KEY_NUM7(55) |
GAME_D(12) |
KEY_NUM9(57) |
そのほか |
exception |
|

■通信仕様

HTTP/HTTPS通信が可能です。
そのほか、TCPソケット、UDPソケットは利用できません。また、同時接続は1接続のみです。

項目 |
メソッド |
説明 |
送信 |
GET |
最大1キロバイトまでのリクエストライン、5キロバイトまでのヘッダ、を送出可能です。 |
POST |
最大1キロバイトまでのリクエストライン、5キロバイトまでのヘッダ、および5キロバイトまでのボディを送出可能です。 |
受信 |
|
レスポンスヘッダからレスポンスボディまで全てを含め、最大32キロバイトまでを受信可能です。 |
|

オープンアプリプレイヤーは、ユーザー保護のため一日3メガバイトの通信量規制を行っています。通信規制は午前1時にリセットされ、次の午前1時になるまでの間、再度3メガバイト利用できるようになります。通信量のカウントにはJadファイル、Jarファイルのダウンロードも含まれます (そのほかの要因により3メガバイト以下の利用となる場合があります)。

また、必ずユーザーに対し接続前確認を行います。

■音源について

MIDIファイル (audio/midi)、WAVEファイル (audio/x-wav)、Tone Sequence (audio/x-tone-seq) の再生が可能です。
MIDIファイルとTone Sequenceを合計して最大4本 (ToneSequenceは同時再生最大1本)、WAVEファイルは4本の同時再生が可能です。
MIDIファイルはSMFフォーマット0、また16チャンネルのMIDIイベント、音色拡張などのExclusiveメッセージに対応しています。最大同時発音数は4本合計して64音です。
Playerの遷移状態としては、Prefetched、Play状態に遷移可能なものが4オブジェクトまでになります。従って5本目のPlayerをPerfected状態にする為には、すでにPrefetched、Play状態にあるPlayerをRealized状態へ遷移させる必要があります。

WAVEファイルは、8bit/16bit PCMとヤマハADPCMフォーマットに対応しています。
ファイルの詳細については、ヤマハ社のSMAF GLOBALなどを参照してください。



■その他の仕様

そのほか、オープンアプリプレイヤーに関する特記事項を以下に纏めます。

項目 |
説明 |
画像ファイル |
長辺640、短辺240まで、サイズが100キロバイトまでのPNGファイル、もしくはJPEGファイルを展開可能です。
ただしメモリ利用状況により展開が失敗する場合があります。 |
文字コード |
デフォルトエンコードはSJISで、その他にUTF-8をサポートします。 |
Trusted対応 |
Trustedアプリには対応しておりません。 |
保存ファイル |
32キロバイトまでのレコードストア容量に対応しています。 |
|
|
|

|
|
|
オープンアプリを対応端末へダウンロードするためには、XHTML (HTMLでも可) 記述のWebページを作成する必要があります。

| ※ |
XHTMLの基本的な記載方法や、その他のタグはEZfactoryを参照してください。
|

■アプリの作成

オープンアプリはサン・マイクロシステムズが提供するJ2ME Wireless Toolkit等で開発することが出来ます。開発ツールに関してはサン・マイクロシステムズのホームページなどをご参照ください。

■サーバ設置からオープンアプリのダウンロードまで

まず、オープンアプリをダウンロードするためのリンクが埋め込まれたXHTMLファイルをウェブページへアップロードします。
次にオープンアプリ (JadファイルとJarファイル) を作成し、ウェブページへアップロードします。サーバ側のMIMEタイプ設定が必要となります。

あらかじめダウンロードページには、オープンアプリのダウンロードリンクタグ (.jadファイルへのリンク) を記載しておきます。
ユーザーがブラウザで当該ページを表示し、ダウンロードリンクタグをクリックすると、オープンアプリプレイヤーがJadファイルを取得し、次にJadファイル記載内容に従ってJarファイルを取得します。

Jarファイルを取得後、ユーザーはオープンアプリを再生することが可能となります。



■サーバ設定

Webページを配置するサーバ側にていくつかのヘッダ情報を必須で返却する必要があります。返却されない場合、インストールエラーとなります。サーバ側の設定方法に関しましてはご利用のサーバ管理者へお問い合わせ下さい。

Content-Lengthヘッダに対応する必要があります。
Content-Typeとして以下のMIMEタイプに対応する必要があります。

拡張子 |
MIMEタイプ |
.jad |
text/vnd.sun.j2me.app-descriptor |
.jar |
application/Java-archive |
|

■タグ

<a href="device:jam? <URL>">タグで.jadファイルを記述します。<URL>にはhttp://から始まるJarファイルのURLを記載してください。

以下に例を示します。

|
<html><body>
オープンアプリゲーム</br>
以下のリンクをクリックしてください。
<a href="device:jam?http://www.au.kddi.com/marubatsu/marubatsu.jad">○×アプリで遊ぶ</a>
</body></html>
|
|

■URL文字列の規定

非ASCIIコードのURLをサポートしません。 最大256バイト (終端\0除く) までの文字列長である必要があります。 以下の文字である必要があります。

"A" - "Z"、"a" - "z"、"0" - "9"、";"、"/"、":"、"@"、"&"、"="、"+"、"$"、","、"?"、"#"、"-"、
"_"、"."、"!"、"~"、"*"、"'"、"("、")"、"%"
(以上すべてシングルバイト文字)

URL文字列は、大文字小文字を区別します。 プロトコルスキーマ文字列 (http://、https://) は大文字小文字を区別しません。
例えば、http://www.au.kddi.com/dir/ と http://www.au.kddi.com/DIR は区別されますが、 HTTPS://www.au.kddi.com/dir/ と https://www.au.kddi.com/dir/は区別されません。

■ユーザーエージェント

オープンアプリプレイヤーからのHTTP/HTTPS通信時、ユーザーエージェントは以下の通りとなります。
KDDI-JVM/1.0<SP> (<端末名>;<SP>VM)
<端末名>は端末名、<SP>は空白です。

|
例: KDDI-JVM/1.0 (W51X; VM)
|
|

オープンアプリプレイヤーが再生しているオープンアプリが通信を行った場合、ユーザーエージェントは以下の通りとなります。
KDDI-JVM/1.0<SP>(<端末名>;<SP>MIDlet)
<端末名>は端末名、<SP>は空白です。

|
例: KDDI-JVM/1.0 (W51X; MIDlet)
|
|

■システムプロパティ

システムプロパティにセットされる情報を以下に記します。

ID |
格納値 |
microedition.platform |
端末名を"au-"の背後に付与して返却します。 ex:"au-W51XX" |
microedition.encoding |
"SJIS" |
microedition.configuration |
"CLDC-1.1" |
microedition.locale |
"ja-JP" |
microedition.profiles |
"MIDP-2.0" |
com.kddi.vmsetting.bgmusic |
BGM設定の状態。"on"、もしくは"off" |
com.kddi.vm.setting.bgmail |
バックグラウンドメール受信設定の状態。"on"、もしくは"off" |
com.kddi.vm.netuse.current |
オープンアプリプレイヤーが利用している本日の通信量 (byte単位) |
com.kddi.vm.netuse.max |
オープンアプリプレイヤーが一日に利用できる通信量 (byte単位) |
|
|
|

|
|
|
2008年より一部の端末から1.0から1.1へ順次バージョンアップされます。バージョンアップ時の変更点は以下の通りです。

■起動時のパラメータ

Webページからオープンアプリをダウンロードする際に、パラメータ指定が可能となりました。
JadファイルのURLの後ろに#から続くパラメータを記載します。例を以下に示します。

<a href="device:jam?http://www.au.kddi.com/marubatsu/marubatsu.jad#param=1">○×アプリで遊ぶ</a>

上記例の場合、オープンアプリ起動時に " param=1 " の起動引数がシステムプロパティ
" com.kddi.midlet.args " 経由で引き渡されます。
このパラメータはダウンロード済みのアプリに対しても有効となります。
起動パラメータはオープンアプリが起動している間のみ有効となります。オープンアプリ一覧から起動された場合の起動パラメータはNULLとなります。
パラメータの最大長はURLとあわせて1023バイトになります。したがって、パラメータの最大長は (1023-URL文字列長) になります。

上記例の場合、URL長が47文字 (http://www.au.kddi.com/marubatsu/marubatsu.jad#) となり、最大パラメータ長が976文字 (=1023-47) となります。

■ユーザーエージェント

バージョン表記が1.0から1.1になり、画面サイズパラメータが付与されます。

オープンアプリプレイヤーが送出するユーザーエージェントは以下の書式になります。
KDDI-JVM/1.1<SP> (<端末名>;<SP>VM;<SP><画面サイズ>)

|
例: KDDI-JVM/1.1 (W5nXX; VM; WQVGA)
例: KDDI-JVM/1.1 (W5nXX; VM; QVGA)
|
|

オープンアプリが送出するユーザーエージェントは以下の書式になります。
KDDI-JVM/1.1<SP> (<端末名>;<SP>MIDlet;<SP><画面サイズ>)

|
例: KDDI-JVM/1.1 (W5nXX; MIDlet; WQVGA)
例: KDDI-JVM/1.1 (W5nXX; MIDlet; QVGA)
|
|

■システムプロパティ

バージョン1.1からは以下のシステムプロパティが追加で取得できるようになりました。

ID |
格納値 |
com.kddi.midlet.args |
オープンアプリプレイヤー起動時のパラメータ |
com.kddi.dev.intensity |
電界強度0 (=圏外),1,2,3,4 (=アンテナ3本) |
com.kddi.dev.powersupply |
電池残量0 (=空),1,2,3 (=満),4 (=充電中)
|
com.kddi.dev.memcardstate |
メモリカード有無情報 0 (無),1 (有),2 (非搭載) |
com.kddi.midlet.jadurl |
Jadファイル取得元URL (注2) |
|

| 注2) |
オープンアプリのJadファイルがダウンロードされたURLになります。
|

■WQVGAの対応

WQVGAサイズ、もしくはそれ以上の画面サイズを持つ端末では横240ドット、縦376ドットの表示を行う事が可能となりました。以下にその方法を記載します。

| 1. |
Jadファイルに "OAP-SCREEN-SIZE: WQVGA" の一行を追加する。
|
| 2. |
オープンアプリからCanvas.setFullScreenMode()を呼び出す。
|

以上の手順により、オープンアプリが描画可能なサイズが伸張されます。この際、オフスクリーンの最大サイズは272×408 (描画可能サイズ+32ドット) になります。
|
|

|
|
|
Java™テクノロジーに関する情報は、以下のサイトから得る事ができます。


Java™およびJava™に関連する商標は、米国およびその他の国における米国SunMicrosystems,Incの商標または登録商標です。


|
|