Jadファイルの設定方法
- 基本事項
- 必須MIDlet属性
- MIDlet-Name
- MIDlet-Version
- MIDlet-Vendor
- MIDlet-Jar-URL
- MIDlet-Jar-Size
- MIDlet-OCL(MIDP1.0のみ)
- MIDxlet-API(MIDP2.0かつ、MEXA/JSCLの機能を使用する場合のみ)
- MIDlet-1(一応条件必須属性だが、必須属性とほぼ変わらない)
★ 各属性の説明
- MIDlet-Name
- S!アプリ名を記述します。この項目はMIDP1.0なら16Byte以内、MIDP2.0なら32Byte以内に収める必要があります。
- MIDlet-Version
- S!アプリのバージョンを記述します。この項目はMIDP1.0なら16Byte以内の文字列、MIDP2.0なら数値である必要があります。
- MIDlet-Vendor
- S!アプリのベンダー名を記述します。この項目はMIDP1.0なら16Byte以内、MIDP2.0なら32Byte以内に収める必要があります。
- MIDlet-Jar-URL
- Jarファイル名を指定します。1024Byte以内に収める必要があります。
- MIDlet-Jar-Size
- Jarファイルのバイト数を指定します。80KByte以内に収める必要があるらしいですが、Jadファイルを3KB以内に収めなければいけないのに、この値が80KBまで使用できるというのはなぞです。
- MIDlet-OCL
- JSCLのライブラリを指定します。64KByte以内に収める必要があるらしいですが、こちらもJadファイルを3KB以内に収めなければいけないのに、この値が64KBまで使用できるというのはなぞです。
- MIDxlet-API
- MEXA/JSCLのライブラリを指定します。MEXAの機能を使用している場合、JSCL-1.4.2もしくは、MEXAと記載する必要があります。
では次に、以下の条件のときの、実際のJadファイルの記述を出します。
- ファイル名および、メインクラス名が「sample」
- 24x24の大きさののアイコンの画像ファイル「icon.png」がresフォルダに入っている。
- アプリ名が「サンプル」。
- ベンダー名が「Unknown」。
- アプリバージョンが「1.0.0」。
- jarファイルの名前が「sample.jar」。
- jarファイルのサイズが「24,573byte」。
- JSCLのバージョンが1.2.1
- HttpConnectionを使用する。
- レコードストアのサイズが「1024byte」。
- 著作権を主張する。
- 画面サイズを240x260固定にする。(QCIF端末やVGA端末でも、同一画面サイズにするため)
- SDカードにアプリを保存することを許可する。
- データフォルダ操作を行う
★ P5、P6、P7端末の場合
★ 3GC端末の場合
MIDlet-1: sample,icon.png,sample
MIDlet-Name: サンプル
MIDlet-Version: 1.0.0
MIDlet-Vendor: Unknown
MIDlet-Jar-URL: sample.jar
MIDlet-Jar-Size: 24573
MIDlet-OCL: JSCL-1.2.1
MIDlet-Network: Y
MIDlet-Icon: icon.png
MIDlet-Data-Size: 1024
MIDlet-Copyright: Y
MIDlet-Application-Range: 0,0
MIDlet-Save: Y
MIDlet-Application-Security: Y
上記はそのままコピペで使用できるものです。
MIDlet-1: sample,icon.png,sample
MIDlet-Name: サンプル
MIDlet-Version: 1.0.0
MIDlet-Vendor: Unknown
MIDlet-Jar-URL: sample.jar
MIDlet-Jar-Size: 24573
MIDxlet-API: JSCL-1.2.2
MIDlet-Permissions: javax.microedition.io.Connector.http,com.j_phone.io.Connector.StorageConnection.read,com.j_phone.io.Connector.StorageConnection.write
MIDlet-Icon: icon.png
MIDlet-Data-Size: 1024
MIDxlet-ScreenSize: 240,260
では解説に行ってみましょう。
まず、「:」と各項目の間にスペースがありますが、これは見易さのためです。
jadファイルは、「MIDlet-xxx:」から各項目までの間スペースは、無視される仕様になっています。
★ P5、P6、P7端末の場合
★ 3GC端末の場合
MIDlet-1: sample,icon.png,sample # 名前,アイコンファイル名,メインクラス名を「,」区切りかつ、スペースなしで記述します。
MIDlet-Name: サンプル # アプリ名を記述します。
MIDlet-Version: 1.0.0 # バージョンを記述します。
MIDlet-Vendor: Unknown # ベンダー名を記述します。
MIDlet-Jar-URL: sample.jar # jarファイル名を記述します。
MIDlet-Jar-Size: 24573 # jarファイルサイズを記述します。
MIDlet-OCL: JSCL-1.2.1 # JSCLのバージョンを記述します。 P5は「1.2.1」、P6は「1.2.2」、P7は「1.3.2」になります。
上位互換はあるので、JSCL1.2.1のAPIしか使用していない場合、P6、P7端末で「1.2.1」と記述しても問題ありません。
MIDlet-Network: Y # HttpConnection通信の利用の有無を記述します。
「Y」は利用する、「N」は利用しないことを表します。この属性が無い場合は「N」を指定したのと同じ扱いになります。
MIDlet-Icon: icon.png # アイコンのパスを記述します。
MIDlet-Data-Size: 1024 # レコードストアのサイズを記述します。
MIDlet-Copyright: Y # 著作権の有無を指定します。「Y」は著作権の有り、「N」は著作権の無しを表します。この属性が無い場合は「N」を指定したのと同じ扱いになります。
MIDlet-Application-Range: 0,0 # 高精細モードの指定です。この項目を入れると、画面サイズを240x260と認識します。この属性を入れないと画面サイズは120x130となってしまいます。
MIDlet-Save: Y # 外部機器への保存許可の有無を指定します。
「Y」は利用する、「N」は利用しないことを表します。この属性が無い場合は「N」を指定したのと同じ扱いになります。
MIDlet-Application-Security: Y # 内部情報取得機能の使用の有無を指定します。
「Y」は利用する、「N」は利用しないことを表します。この属性が無い場合は「N」を指定したのと同じ扱いになります。
内部情報とは、位置情報(緯度、経緯、地名)の取得、メール着信情報の取得、音声着信情報の取得、メールの送信、アドレス帳やメールボックスの操作、データフォルダ操作のことです。
まず、MIDP1.0からMIDP2.0で変更になった属性は以下となります。
MIDlet-1: sample,icon.png,sample # 名前,アイコンファイル名,メインクラス名を「,」区切りかつ、スペースなしで記述します。
MIDlet-Name: サンプル # アプリ名を記述します。
MIDlet-Version: 1.0.0 # バージョンを記述します。
MIDlet-Vendor: Unknown # ベンダー名を記述します。
MIDlet-Jar-URL: sample.jar # jarファイル名を記述します。
MIDlet-Jar-Size: 24573 # jarファイルサイズを記述します。
MIDxlet-API: JSCL-1.2.2 # MEXA/JSCLのバージョンを記述します。3GCの最下位端末のJSCLのバージョンは1.2.2なので
ここでは「JSCL-1.2.2」としていますが、MEXAに対応している端末をしようするのであれば「MEXA」と記述して問題ありません。# MIDlet-Permissionsの説明は長くなるので、後に別途記述します。
MIDlet-Permissions: javax.microedition.io.Connector.http,com.j_phone.io.Connector.StorageConnection.read,com.j_phone.io.Connector.StorageConnection.write
MIDlet-Icon: icon.png # アイコンのパスを記述します。
MIDlet-Data-Size: 1024 # レコードストアのサイズを記述します。
MIDxlet-ScreenSize: 240,260 # 高精細モードの指定です。この項目を入れると、画面サイズを240x260と認識します。一部の端末はこの属性を入れないと画面サイズがVGAサイズになってしまいます。
・MIDlet-OCL → MIDxlet-API
・MIDlet-Application-Range → MIDxlet-ScreenSize
次に、MIDP1.0からMIDP2.0になって変更し、そしてSoftBankのMIDP2.0端末では無視されるようになった属性は以下となります。
・MIDlet-Network → MIDxlet-Network
・MIDlet-Save → MIDxlet-Save # MIDP2.0の端末は常に外部機器に保存できるようになった。
・MIDlet-Application-Security → MIDxlet-Application-Security
★ MIDlet-Permissionsについて
MIDP2.0になって一部のAPIを使用する場合、警告ダイアログが出るようになりました。
MIDlet-Permissionsは、その警告ダイアログが出るAPIをアプリ内部で使用している場合
そのAPIに適したパーミッションを記述する必要があります。
数が多すぎるため、この場で全てのパーミッションを挙げることはしませんが、主に使用するパーミッションは以下となります。
- javax.microedition.io.Connector.http
- com.j_phone.io.Connector.StorageConnection.read
- データフォルダからデータを読み込む場合に、このパーミッションを設定してやる必要があります。
- com.j_phone.io.Connector.StorageConnection.write
- データフォルダにデータを書き込む場合、フォルダを作成する場合に、このパーミッションを設定してやる必要があります。
各APIに対応するパーミッションは開発ガイドMIDP2.0対応端末編の
[2.3.2. セキュリティ]内の表2.3.2-2.「セキュリティダイアログ表示対象API一覧」を確認してください。