トップページ⇒tech
1001コメント353KB

iモード携帯電話用Java(iアプリ) Part 7

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
NTT DoCoMoのiモード携帯電話用Javaに関する話題を扱うスレッドです。

DoCoMo以外は下記スレへ。

CLDC+MIDP+携帯電話用Javaスレッド part 3
http://pc5.2ch.net/test/read.cgi/tech/1091798483/

過去スレ
Part 1 http://piza2.2ch.net/tech/kako/975/975428633.html
Part 2 http://pc3.2ch.net/tech/kako/1000/10007/1000723476.html
Part 3 http://pc2.2ch.net/test/read.cgi/tech/1040898596/
Part 4 http://pc5.2ch.net/test/read.cgi/tech/1067139509/
Part 5 http://pc5.2ch.net/test/read.cgi/tech/1084246226/
Part 6 http://pc5.2ch.net/test/read.cgi/tech/1091286071/
0002デフォルトの名無しさんNGNG
■ 開発環境

NTT DoCoMo - iアプリコンテンツの作成について
http://www.nttdocomo.co.jp/p_s/imode/java/index.html
Java[tm] 2 Platform, Standard Edition v 1.4
http://java.sun.com/j2se/1.4/ja/
CLDC仕様書 日本語版
http://java.sun.com/products/cldc/docs/CLDC1.0_ja_docs.zip
Eclipse.org
http://www.eclipse.org/

■ 機種依存情報

ん・ぱか工房(iアプリ機種依存情報)
http://www.saturn.dti.ne.jp/~npaka/
NTT DoCoMo - アプリケーション作成上の注意点
http://www.nttdocomo.co.jp/p_s/imode/java/caution.html
Overflow! さかきけいのページ(504iまでの機種依存情報つきAPIリファレンスあり)
http://godwood.allnet.ne.jp/vioret/

■ アプリを省サイズ化するツール(ObfuscatorまたはOptimizer)

Java Blender
http://web.yl.is.s.u-tokyo.ac.jp/amo/JavaBlender/
jarg - Java Archive Grinder
http://jarg.sourceforge.net/
0003デフォルトの名無しさんNGNG
■ 主なアプリ配布サイト

ギガアプリ
http://g-appli.net/
アプリ★ゲット
http://appget.com/
ゲームチャンネルi
http://appli.channel.or.jp/pc/i/

■ 携帯関連ニュース

ITmedia:モバイル
http://www.itmedia.co.jp/mobile/
ケータイ Watch
http://k-tai.impress.co.jp/
Nekomaru What's New
http://snget.hp.infoseek.co.jp/news/news_index.htm

■ 関連板

携帯アプリ板
http://news6.2ch.net/appli/
携帯・PHS板
http://etc.2ch.net/phs/
0004デフォルトの名無しさんNGNG
iアプリ特有ではなくJava一般に関する質問はこちらへ
【初心者】Java質問・相談スレ58【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1102420209/
0005デフォルトの名無しさんNGNG
新スレ乙カレー
0006デフォルトの名無しさんNGNG
>>1
乙カレイドスター
0007デフォルトの名無しさんNGNG
早速なんですがPanel型クラスで
public void keyPressed(Panel p, int param) {
if (param == Display.KEY_LEFT) {
         中身
}
}
が作動しないんですが、
これはフォーカスか何かが関係しているのでしょうか?
0008デフォルトの名無しさんNGNG
>>7
keyPressedってKeyListenerだっけ?
KeyListenerは、フォーカス移動とかに使われるキーを押しても呼ばれないよ。
それらのイベントはフォーカスマネージャーとかに消費されちゃうから。
だから、実質的にKeyListenerで捕捉できるキーイベントって数字キーくらいじゃないかなあ。
0009デフォルトの名無しさんNGNG
>>8
ありがとうございました。
だから数字キーでは動いたわけなんですね。
ではフォーカス移動の方で代用してみます。
0010デフォルトの名無しさんNGNG
前スレ埋まってないよ〜
0011デフォルトの名無しさんNGNG
埋めたら落ちちゃうでしょ!
土日またいであげないと、土日プログラマの人が最終ログとれないじゃないか。
0012デフォルトの名無しさんNGNG
http://m-pe.tv/u/page.php?uid=WORDLIFE&id=14
0013デフォルトの名無しさんNGNG
>>12
エラー!
------------------------------------
ページがありません

氏ね
0014デフォルトの名無しさんNGNG
過去ログ、公式PDF読みあさったけど解らないんでおしえてください。
Doja-3.5プロファイルで組んでいる時にjarの容量が32kを越えたとたん
実機でエラーになります。
トレースではmessage = Maximum byte code length (32KB) exceeded
となるんで、容量制限みたいな物に引っ掛かってるんだと思われるんですが
jarを100k使いたい場合にはjam等に特別な表記がいりますか?
もしくは解決法ご存じの方ご教授願います
0015デフォルトの名無しさんNGNG
>>14
ひとつのメソッドの中で大量の配列を確保したらそんなエラーが出たような記憶が。
ごめん、うろ覚え。
もし心当りがあったら、複数のメソッドに分けるなりして減らしてみ。
0016デフォルトの名無しさんNGNG
>>14
dat落ちした初心者スレで昔見たような‥

jarのファイルサイズは関係ないし、エミュでもエラーになると思うが、
・巨大なメソッドがある →分割汁
・巨大な配列を初期化している →バイナリファイルにしてリソースへ

よく知らんけど、起動時のベリファイにサイズ制限があるっぽい
001714NGNG
なるほど、これはJarには関係無いのですね。
エミュでもエラーになります
(ALERT: Maximum byte code length (32kB) exceeded)

たしかに巨大なメソッドがあるし、配列もそこそこ大量にあります。
さっそく分割できるとこを探して分割したりしてみます。

助かりました。有り難うございます。
0018デフォルトの名無しさんNGNG
> Maximum byte code length (32KB) exceeded
まあ、「バイトコードの最大長(32KB)超えてまんで」とハッキリ言ってるわけだが。
001914NGNG
エラーの意味をてっきりJAR30kb制限と勘違いしてたようです。
1つのメソッドで32k越えるとそういう風になるみたいです。
メソッド分割したら、あっけなく動きました。
アドバイス感謝です!
0020デフォルトの名無しさんNGNG
iアプリに限らず着声の質問になってしまうかもしれませんが
音声ファイル(wav)をアプリで再生することについての質問です。

PsmPlayerでwavファイルをmldに変換しようとすると
変換時に機種名を指定するようになっています。
ってことは、機種別に専用のmldファイルを用意する必要があるということでしょうか?

何が言いたいのかというと
機種をN用と指定して変換した音声ファイル(MLD)が他の機種で再生されないのです。
できれば全機種用のMLDを用意したくないので
なにか抜け道があればいいのですが。

だらだら長文スマソ
0021デフォルトの名無しさんNGNG
>>20
ありません。機種毎のMLDを用意しないといけないのは糞仕様です。
同系列の端末は互換性あるけどね。
002220NGNG
>>21
速攻レス、本当サンクスです!
iアプリはクソ仕様だらけの世界ですなw

はぁーっ↓、対応しなきゃならんかいorz...
0023デフォルトの名無しさんNGNG
同系列だと互換性があるだぁ!?
甘い、甘すぎる。

SH505i と SH505iS は互換性が無い!
002420NGNG
>>23
それはSH用に用意した音声ファイル(MLD)が
片方では鳴るけど片方では鳴らないということでしょうか?
もしそうだとしたら、なにか対策とかあるのでしょうか
002520NGNG
諦めて、音声ファイル(wav)を機種別に用意するべく
PsmPlayerでMLDに変換していたら、なんと
DとかP用だけ音が割れる音声が出てきたよorz
DとP用にwavから作りなおす必要あるのか
知らなかったです
002625NGNG
スマソ、いさみ足でした
別の変換ツールつかったらうまくいった
単にPsmPlayerの変換処理とwavの相性が悪かっただけみたい
0027デフォルトの名無しさんNGNG
別のMLD用意しる。
Wev2Mldとかならきちんと分けて吐いてくれるぞ。
002827NGNG
>>24ね
0029デフォルトの名無しさんNGNG
505以降(90x含む)のゲームをちょっと前に作ったので今確認してみたら、
音声データ10種類用意してたよ・・・

こういうところの共通化は、ずっとされないんだろうね
今後3D音声とかまでやらされた日には・・・orz
003029NGNG
3D音声は先走った妄想だな・・・
003120NGNG
wav2mldのページ見ていて愕然としました

P900iってP505i(S) P506 とは同じじゃないんですね。
むしろP504iと同じとは...謎だ

SO505iとSO505iSもちがう

901シリーズとかどうなっちゃうんだよ〜(TT)
0032デフォルトの名無しさんNGNG
DoCoMoは機種ごとに音源チップがまちまち。
PCM音声(実際はADPCMみたいだけど)は、音源チップごとに形式が
違うから互換性がないんですよ。
0033デフォルトの名無しさんNGNG
>>30
おいおい…。Doja4.0は3D音源対応だろうが。
003429NGNG
>>33
wavから3Dのmldって出来るの?
そういう意味での3D音声って発言だったから、
先走りかなって・・・
ってか、そろそろちゃんと調べておくかな

どっちにしろ、前機種のmldさえちゃんとなってくれれば、
問題ないんだけどね・・・
003520NGNG
>>32
なるほど!そういうことですか。
確かに調べてみると
P900iとP504iは同じだけど
→ROHM製PCM音源(44.1kHz)

P505iだけなぜかSO,SH,Dとおなじらしい。
→FUETREK製PCM音源(48kHz)

P505iで48kHzに対応させたけど
やっぱり48kHzはまだイランってことで
900iで44.1kHzに戻したのかな??

0036デフォルトの名無しさんNGNG
ttp://www.hundredsoft.jp/wav2mld/ より
     1. N210i, N211i, N503i
     2. N504i, N251i
     3. N505i(iS), N900i
     4. SH251i
     5. SH505i
     6. SH252i, SH505iS, SH900i, SH506iC
     7. SO504i, premini
     8. SO505i
     9. SO505iS, SO506iC
    10. P211i, P504i, P251i, P900i
    11. P505i(iS), P252i(iS), P506iC
    12. D211i, D504i, D251i
    13. D505i(iS), D252i, D506i
    14. F211i, F503i
    15. F504i, F251i
    16. F505i(GPS), F900i, F506i

ひょえ〜
こんなに種類があるんだ
マンドクセ
0037デフォルトの名無しさんNGNG
こんだけあると、アプリの配布方法で悩む。

System.getPropertyして機種名を調べて、対応するMLDを
サーバからダウンロードしようと思ったのですが、新機種が
出るたびにソースを変更する必要があるので、なんか気が
ひけます。でも機種別にjarとjamを用意するのも、これだけ
たくさんあると、こっちの方法も気がひけますね。

皆さんはどうしてますか?
0038デフォルトの名無しさんNGNG
>>37
MLDを吐くCGIでなんとかなりそうだけど。

移動機からサーバに機種名を教えて、サーバ内で機種名に該当するMLD
を探し、移動機に返してあげる。
0039デフォルトの名無しさんNGNG
>>37
snd1_d505i.mld
snd1_n900i.mld
・・・
という風に機種名をつけたファイルをファイルをサーバにアップ。

んでプログラム側は
String s = "snd1_" + System.getProperty("microedition.platform").toLowerCase() + ".mld";
とすれば取ってくるべきサウンドデータ名ができる。
あとはそれを通信で取ってこればjarもjamも変えずにサウンドデータだけUPするだけで
いいから楽チン。
実際は複数のMLDをバイナリ結合するとか、もうちょっと凝ったやり方してるけど
概要はこんな感じでやってるよ。
0040デフォルトの名無しさんNGNG
レスありがとうございます

>>38
なるほど、cgi使って振り分ける方法もありますね
いいかもしんない。

>>39
これ、ナイスアイディアって思いました。


参考にさせていただきます
0041デフォルトの名無しさんNGNG
今、N系の携帯でリスナーを用いないでサウンドを再生中、
「com.nttdocomo.ui.UIException: Can't set media sound while playing」
という例外が発生して困ってます。

一応、再生中と setSound が重ならないように、setSound 前に stop を
行うようにしてます。

google で検索してみると、D505 系ではシステム負荷状態でサウンド操作を
連続して行おうとすると発生する、と書いてました。
ttp://www.nttdocomo.co.jp/p_s/imode/java/pdf/d505is_iappli_notes_1.pdf


で、質問なんですが…
1.この例外って、N系でも問題は同じなんでしょうか?
  それとも、別の要因で、このメッセージが出ているんでしょうか?
2.D系と同じ場合は、連続させないようにしてやれば良いんですが、
  もし違う場合はどうすれば防げますか?

どうか、よろしくお願いします。
0042デフォルトの名無しさんNGNG
音がらみの部分は、例外がスローされるものとしてプログラムを書くと安心
漏れはこうやった
・例外が出なくなるまでひたすらループ(BGMとか)
 「N504i(S) iアプリ作成に関する注意事項」を参照汁
 ttp://www.nttdocomo.co.jp/p_s/imode/make/java/index.html
・音が抜けても気にしない(効果音とか)
0043デフォルトの名無しさんNGNG
>42
うお、すげー参考になった!
そうか、504のPDFね。だから、505のPDFには載ってなかったのね(泣)。
つうか、「例外はエラー処理してアプリ終了」、つう概念で固まってたんで目から鱗です。

どうもありがとう〜。
004442NGNG
質問です。
このスレと少し関係ないかもしれませんが、iアプリからネットのページを見るようにしたいのですがやり方がわかりません。
今、ランキング機能のiアプリを作って得点を送信するところまでは作ったのですがそのランキングにiアプリ起動中から直接飛ぶ方法がわからない状態です。

わかる方いましたら、どうか教えてください。
0045デフォルトの名無しさんNGNG
>>41
素直にリスナーを使って、AudioPresenter.AUDIO_COMPLETEのイベント通知を
待つのがいいんじゃないだろうか。
0046デフォルトの名無しさんNGNG
>>44
APIリファレンスに載ってるんだけど読んでる?
IApplication#launch(int target, String[] args)
targetにLAUNCH_BROWSER、argsにurlを指定汁
0047デフォルトの名無しさんNGNG
>>44
IApplication.launch()でwebブラウザに飛んでくか、
アプリからhttp connection開いてページ読込みすればいいんじゃ内科
004844NGNG
>>46,47
ご回答ありがとうございます。APIリファレンスは読んでませんでした。
そして、リファレンスを読んでlaunchのところを見てみましたが、String[] argsのところがよくわかりません。
質問ばかりで申し訳ないです、argsにurlを指定の仕方あたりを詳しく教えてください。

004944NGNG
java.lang.SecurityException: UseBrowser key not found in ADF
なので、どうやらADFの設定がだめらしいです。難しい・・・・
0050デフォルトの名無しさんNGNG
>>49
launchは使用しているかどうかをADF(jamファイルのことね)に
宣言してやらないとエラーになる。
jamを開いて「UseBrowser = launch」を追加するべし。
005144NGNG
>>50
ありがとうございます!!何とかちゃんと走りました。
ちなみに、エミュレーターで「サイトに接続しますか?」にyesってするとブラウザを開いてページを表示するのではなく終わるのは正しく動いているって事でしょうか?
自分docomoじゃないので、携帯使ってテストできないもので。
0052デフォルトの名無しさんNGNG
正しい。
携帯でもブラウザ開くとアプリは終わる。
0053デフォルトの名無しさんNGNG
>>44
いいからとっととAPIリファレンスとコンテンツ開発ガイドを読め。
他人に質問していいのはそれからだ。
0054デフォルトの名無しさんNGNG
>>51
ランチが正常に起動した場合はアプリはそこで終了。
余談だが注意すべきところもある。

エミュで出てくるように必ず選択肢が出てくるのだが
操作については機種依存。エミュのようにソフトキーの場合もあれば
ダイアログで上下+セレクトキーで選んでたりする。
よってユーザーが接続を拒否した場合の動作を意識して作る必要がある。
拒否された場合はレジュームが発生した後呼び出したところから復帰らしい。
のでキー情報をどのように扱ってるかによってはちゃんと処理入れないと
再びランチ呼び出したりすることがある。
戻ってくるときはキー情報はクリアしておくのが妥当かも。
005544NGNG
アドバイスありがとうございます。
結構いい感じになってきました。
005644NGNG
http://asamizodai.hp.infoseek.co.jp/hira_wall/wall.html

できました!自分的にはある程度納得の中身になりました〜
0057デフォルトの名無しさんNGNG
すいません、確認なんですが
TransparentImageはPanelでは動作しませんか?
(※エミュレータ上の話で、機種依存という意味ではないです)

Canvasでは動作Panelでは動作しませんでした。
いろいろ探してみたんですが”動作しません”と書いてある記述がみあたらんのです
0058デフォルトの名無しさんNGNG
>>57
APIリファレンスに
>端末によってサポートされていない場合があります。未サポートの場合、メソッドが呼び出された時点でUnsupportedOperationExceptionを発生します。

って書いてあるから、そのまんまではないかと思われ。
エミュレータでは動作不可でも、実機では動くのかもしれない。

それと透明色があるってことは、何かの画像に上書きするような
使い方をするんだろうから思うから、単体でPanelに貼るのは「?」って気がする。
005944NGNG
エミュレーターでは動いていたのですがso505iやF504iなどで起動すると「αエラーが発生しました」となるようなのです。
また、他の機種では動いたりもします。

原因が全くわかりません。
何かわかる方がいましたら教えてください。
006044NGNG
一応ソースの方も乗せておきます。

ttp://asamizodai.hp.infoseek.co.jp/Hira.java

どうか、アドバイスよろしくお願いします。
0061デフォルトの名無しさんNGNG
>>59-60
launch(...)は例外をスローするはずだけど(↓の資料)

http://www.interq.or.jp/pink/ribbon/doja-api/3_5/default/com/nttdocomo/ui/IApplication.html#launch(int,%20java.lang.String[])
http://www.interq.or.jp/pink/ribbon/doja-api/3_5/default/com/nttdocomo/ui/IApplication.html#LAUNCH_BROWSER

コードみるとキャッチしてないみたいよ。
まず例外をキャッチしてみて、何の例外がスローしているか
調べてみては?
006244NGNG
う〜ん・・・例外とかその辺詳しくわからないんです。
どうにかなりませんか?
0063デフォルトの名無しさんNGNG
>>62
例外処理が分からんとなると、先に進めませぬ。
薄い本でいいので(Googleで探すんでもいいけど)、
お勉強してくださいな。
006444NGNG
ん〜、どんどんソース削ったのですが前まで動いていたのすらもエラー出るようになってしまいました・・・。
ADFの設定でエラーが出たりしているような気もします。

頭がこんがらがってきました・・・・。
0065デフォルトの名無しさんNGNG
選択肢は2つ
1:もっと勉強する>>53
2:あきらめる

つーか、これだけ簡単に情報が手に入る時代なのになんで自力で調べないかね?
アプリの作り方を覚える気が無いとしか思えないよ
0066デフォルトの名無しさんNGNG
とりあえずソースを読んでみたが、あまりにもひどい。
一から勉強し直したほうがいいって。
0067デフォルトの名無しさんNGNG
他人のソースを見てプログラムの書き方も勉強した方がいいよ
moji[]の初期化とか、スコアの判定とか、書いてて変だと思わなかった?
インデントしてないのも謎。見づらいでしょ?
0068デフォルトの名無しさんNGNG
ざっとソースみてみたのだが・・・やっぱり他人のソースを理解するのは
かなり厳しいな・・・。だがそれ以前に気になったのも多数あるけど。

気になった点
1:getWidth()とかgetHeight()が異常に多い。
  最初にWy,Wxでゲットしてる意味がなさすぎ。
2:getKeypadState()の使う場所がおかしい気がする。
  キープレスイベントで取得した時にも使った方がレスポンスが良くなる。
  流れの中の一瞬だけとる今の形だとスリープ中とか押しても反応ない。
  携帯は速度遅いので結構読み取り出来ない操作がでてくるかと。
3:当たり判定と注釈されてる下すぐのテキスト軍はまとめた方が良いかと。
  数値も文字列も配列で初期化すべきかと。でかすぎる。
String moji[] = {"あ","い","う","え",〜〜};とか上の配列も初期化すると楽かと。
4:paintの中で総ての処理を入れてるのお勧めできない。
5:文字を良く使ってるが起動時にフォントのサイズを一定にしておくべき。
  フォントを作ってそのサイズをつかって文字を計算して描画すれば綺麗に。
6:使ってるエディターの問題かもしれないけどifとかwhileの{}の階層が
  判りにくいと思うぞ。
006944NGNG
なるほど、勉強になります。
全くそういった事を考えずに動けばいいや的な考えで書いておりました。

結局、動かないわけですが・・・・。
他人のソースなどを見て勉強したいと思います。
0070デフォルトの名無しさんNGNG
>>69
まぁソースなんてものは自分しか見ないなら何でもいいのだがね。
でもあの書き方だと自分も理解しづらいかとおもうぞ。バグ取りに苦労する。
さて、せっかくソース出たのでコンパイルしてエミュ上で動作させてみた。

これって動作機種・・・504とか505とか指定してないけど
どれでも動くようにしてるんだなとは思う・・・のだが、これはまずいぞ。
画面サイズは機種によって全然統一されてないので移動速度の計算が
機種によって差がでる。ランキングしてるならここらは統一しないとな。
ゲームオーバー時に表示される文字も機種によってばらばらで
画面からはみ出てると思う。特に504は。
起動時のネームエントリーは戻る事ができず不便。
ゲーム自体は悪くは無いが・・・ゲーム開始時から絶対に回避不能の
シーンがランダムゆえ出るのだが・・・多少サイズ制限すべきかと。

質問の不具合はまだわかんね。
007144NGNG
>>70
やっていただいてありがとうございます。
対応機種は一応505をベースとしていて、504でもできない事はないくらいの気持ちで作りました。
難易度はまだランキング対応でない頃「理不尽に死ぬのがまたいい」という感想をいただき直しませんでした。
しかしご指摘の通りランキング対応になった今、直すべきかもしれません。

僕自身がdocomoでない上にアプリのついていない携帯なので実機でのテストなのができないもので・・・。
0072デフォルトの名無しさんNGNG
>>44
何度も書き込みしてあれだが・・・機種によって動く動かないってのを考慮してみると
おそらくダウンロードしたユーザーがそのアプリに対してネットワーク接続を許可してない
可能性が高いかと。で、接続許可してないのにブラウザ呼び出してエラー発生。
キャッチの記述が無いのでそのまま携帯がエラー停止を行う。って感じかもな。
エラーでると言ってる連中にソフトの設定を調べてもらえば。
こっちでやるにはパケ代がもったいなry
0073デフォルトの名無しさんNGNG
>>68
>2:getKeypadState()の使う場所がおかしい気がする。
>キープレスイベントで取得した時にも使った方がレスポンスが良くなる。

キープレスイベントを待つ形で実装するとレスポンス悪くない?
以前はそうやってたんだけど、ループ内で毎回getKeypadState()を呼ぶ方が
キーレスポンスがいい。
0074デフォルトの名無しさんNGNG
>>44
ところで、>>53>>65>>66のような辛口のアドバイスについてはどう考えている?
都合の悪いものは無視、というスタンスだとそのうち誰も相手してくれなくなるよ。
0075デフォルトの名無しさんNGNG
>>72
すまん・・これ関係ないwwwww
実験したら正常に接続される場合、アプリは既に終了してるから関係なかったw
007644NGNG
>>72
so系列を使っている人に取り合ってみます。

>>74
いえいえ、しっかりとアドバイスとして受け止めますし、こちらが教えてもらう側なので辛口とも思いません。
0077デフォルトの名無しさんNGNG
>>73
アプリ内容で変えてはいるけど、基本的にキープレスイベントを使用しない場合は
動作の速度に関わらず使わないとレスポンス悪いと思ってるんだけど・・。

内容1:アプリが押された瞬間しか必要としない場合
変数2個用意。仮に変数K1、K2とし初期化しておく。
キープレスイベントの中では呼び出されたらK2 |= getKeypadState();を実行
処理のループの先頭でK1にK2をコピー、K2をクリアする。実際の処理はK1を参照。

内容2:長押しとかも必要な場合
上の処理に、K1にコピーした後K1 |= getKeypadState();をして現在の状態も付加する。

内容3:離された瞬間も必要な場合
K3を用意してK1にコピーする前にK3 = K1; でバックアップをしておく。

多少内容違えど大体上の感じでやってるけどなぁ・・・。
毎回1回だけのgetKeypadState()だと特に昔の遅い機種では拾えない事が多かったのだ。
0078デフォルトの名無しさんNGNG
>>77

こんなのは?
int key;
int lastkey = getKeypadState();
while( (key=getKeypadState()) == getKeypadState() ) Thread.yield();

メニュー画面とかそういう、「キーが押されない限り画面は変化しない」みたいな局面とか
「任意キーで次へ進む」みたいな処理に意外と使えるので重宝してる。
0079デフォルトの名無しさん NGNG
900iで終了ボタンを押してアプリの終了確認の「いいえ」を選択したあとに
キー情報をクリアしたいのですが、どうすればできるのでしょうか?

現在、「いいえ」を選択した後、アプリに戻った時にキー情報がそのまま判定されてしまい
次の処理に行ってしまうのでこれを回避したいのですが…
0080デフォルトの名無しさんNGNG
RESUMEメッセージの中で、キーバッファをクリアするようにすればいい。
自前のキーバッファ持ってない? それは知らん。君の設計ミスだ。
0081デフォルトの名無しさんNGNG
>>78
ぬう・・・ちと理解できんです。
もしや・・・whileの比較の所の右の値はlastkeyの間違い?とか思ったけど。
その文だと永久ループに突入しそうなんだけど・・。

>>79
終了ボタンを押してってのはシステムのダイアログを出した後話だよね?
80でも同じこと言ってるけど持っているキーの情報をレジュームで消す方法と
レジュームの中で永久ループを作り延々とキーを取得、その情報が「何も押されていない」状況
になればループを抜けるようにすればバッファもってなくても対処にはなるんじゃないかな?
0082デフォルトの名無しさんNGNG
そういう場合はgetKeypadState()じゃなくてprocessEventでKEY_PRESSED_EVENTを取って使え
008378NGNG
>>81
グハッ
仰るとおり。スマソ
0084デフォルトの名無しさんNGNG
Macで無料で開発できないの〜?
0085デフォルトの名無しさんNGNG
901で128khzとかのAAC再生できるようになりましたけど
iアプリからも再生できるんでしょうか?
それとも他に高音質なフォーマットに対応してますでしょうか?

あとjigチャンネルって内部どうなってるか分かるかたおりますでしょうか?

どうかよろしくお願いします
0086デフォルトの名無しさんNGNG
>>84
メーカーに問い詰めろ
0087デフォルトの名無しさんNGNG
4.0から浮動小数点サポートらしいけど
計算スピードはどうよ?
0088デフォルトの名無しさんNGNG
3D APIに使うみたいだからそれなりのパフォーマンスはあるのではなかろうか。
常識的に考えれば。(しかしiアプリは常識が通用しない世界)
008979NGNG
RESUMEでキーバッファをクリアするで対処できました
機種によってキーを判定するタイミングが違うので

RESUME内で何も押されていない状態まで
無限ループで待つ方がいいみたいです
0090デフォルトの名無しさんNGNG
>>85
AACファイルは動かせないとオモ。
保存する領域がiアプリの動かせる領域と異なってるんじゃないの?
もし、動かせたら電話帳データとかその他データをいじることもできるはず。
0091デフォルトの名無しさんNGNG
JavaBlenderのコマンドラインからバッチ処理したいんだけど使い方わかる人教えてくれー。
とりあえずパラメータは↓
blender [cwd] [-strong|-normal] [jam file] [class file(s)]
sname [cwd] [jam file] [class file(s)]
smap [cwd] [class file(s)]
みたいなんだけど、あんまりうまくいかず・・・。
どなたか動作してるバッチか、パラメータの詳細晒してくださいませ。

教えてエロイ人!!
0092デフォルトの名無しさんNGNG
そこに書いてある通りだろ‥

>[cwd] はクラスファイルが置かれているディレクトリを指定します。
>[class file(s)] は [cwd] からの相対パス名で指定します。
> [-strong|-normal] は圧縮率の調節に使います。
>これらのツールを使うとクラスファイルは削除され、新しいクラスファイルが [cwd] で
>指定したディレクトリに生成されます。
>この三つツールはプラットフォームの種類ごとに別々のツールが用意されています。
> 404i, 405i などのアプリを処理するには専用のツールを使う必要があります。
0093デフォルトの名無しさんNGNG
404i、405i
0094デフォルトの名無しさんNGNG
ニューロポインタは便利。
押しっぱなしで高速スクロールできるし。
0095デフォルトの名無しさんNGNG
Doja3.5で、GETで"xxx.bin"というファイルをダウンロードするアプリなんですが、
アプリ起動直後の通信では問題ないんですが、起動してしばらく動かした後の通信で
ConnectionExceptionが起きてしまいます。
なぜかSH900iとF900iだけで発生して、ConnectionException#getStatus()の
値を見るとSYSTEM_ABORTかTIMEOUTになるようです。
手元に実機がないので詳しく調べることもできずに困ってます。
どなたか同じような症状になったことありますか?
0096デフォルトの名無しさんNGNG
>>95 ちゃんとconnectionのclose()してる?
009795NGNG
close()はしています。
起動直後の通信でも4個のファイルをダウンロードしにいって
成功しているので、通信処理の実装は大丈夫だと思うんですよね。
問題の通信の時もまったく同じ処理を行っています。
アプリをしばらく動かしたあとに発生するという事で、ヒープの
問題か、その他機種依存の問題かなと踏んでるんですが・・・。
0098デフォルトの名無しさんNGNG
>>97
> 成功しているので、通信処理の実装は大丈夫だと思うんですよね。

わかんねぇぞ。該当コードをさらしてみ。
ちなみに自分のとこではSHとFの実機で
数十回以上HTTP通信するアプリ動かしているけど
まったく問題でてないよ。
0099デフォルトの名無しさんNGNG
N900やP900なら納得がいくがw
010095NGNG
こんな感じです。エラー発生時、fileDownload()がConnectionExceptionを投げてきます。

public int fileDownload(String url, int pos) throws Exception {
byte[] data = httpGet(url);
OutputStream out = Connector.openOutputStream("scratchpad:///0;pos=" + pos);
out.write(data);
out.flush();
out.close();
int ret = data.length;
data = null;
System.gc();
return ret;
}
010195NGNG
public byte[] httpGet(String url) throws Exception {
byte[] data = null;
HttpConnection conn = null;
InputStream in = null;
try {
conn = (HttpConnection)Connector.open(url, Connector.READ, true);
conn.setRequestMethod(HttpConnection.GET);
conn.connect();
in = conn.openInputStream();
data = new byte[(int)conn.getLength()];
in.read(data);
} finally {
try {
if (in != null) in.close();
if (conn != null) conn.close();
} catch (IOException ioe) {}
}
return data;
}
■ このスレッドは過去ログ倉庫に格納されています