CLDC+MIDP+携帯電話用Javaスレッド part 2
489 :
デフォルトの名無しさん :
04/05/17 14:52 Phase3のSH-Mobile搭載機種でMP3デコードコード書いて MP3再生とか出来ないかな?
>>489 レスありがとうございます。
MP3ですか、、、やってみます。
いろいろやってみたのですが、どうも別の場所で改めてストレージを呼び出した際、
10バイトのヘッダー情報のあとが、実機とエミュレータで1バイトずれているようです。
------------------------------------------------------
// 別ツールで作成したdatファイル(画像が入っている)を読み取り、画像の先頭アドレスを取得する
int[] imgw_GetAddressList(){
DataInputStream in;
int n;
int List[];
try {
in = Connector.openDataInputStream("storage:");
// ヘッダー情報取得(実際には何もしない。入力位置を参照するため)
byteb[]= new byte[10];
in.read(b, 0, 10);
// ここで、b[]の情報を表示したが、実機・エミュレータともに正常だった。
n = in.readShort();// 上記10バイト後にファイル数が格納されているので、それを取得
// ここでnの中身をチェックすると、実機とエミュで値が違う。
List = new int [n];// 戻り値の配列を作成
// ここで更に10バイト読み込み、それを表示させると、1バイトずれていた。
・・・
------------------------------------------------------
といった状態です。
>>490 うぉーーまじでやってくれるんですか?
A5403CAあたりがCPU的に最強だと思います。
閉じた状態でもアプリは動き続けるようですね。
ただし、その場合はサブディスプレイが点灯しっぱなしになるので
すぐに電池がなくなります。
ヘッドフォン付けてステレオでminiSD内のMP3が聞けたりしたら
いいと思います。協力できることがありましたらどうぞ。
自分はJAVAのコーディング知識0です。 UNIX系の知識、ちょっと高度なWindowsの知識しかないです。 果たして役に立てるのか。。 とりあえず488氏に期待age
ライブラリ仕様を隅から隅まで見てみよう。
>>488 =490
「n = in.readShort();」のところ、エンディアンの問題で引っかかってるのでは。
同じCPU上でwrite/readする分には特に意識しないが、
異なるCPU上でwrite/readするときはそれぞれのCPUがビッグ・エンディアンか
リトル・エンディアンか意識する必要がある。
readShort()は連続する2バイトを符号付きshort型整数として読み込むものだが、
01 02 03 04 … とデータが並んでいる場合、
n = 0x0102 = 258 と解釈されるか、n = 0x0201 = 513 と解釈されるかの違い。
489=493氏へ
>>488 …画像の質問
>>489 …488とは無関係にmp3の質問
>>490 …489を488へのレスだと勘違い
>>491 …490を489へのレスだと勘違い
が真相じゃないか?
でも MP3ですか、、、やってみます。 ってかいてるじゃん。
本気でMP3考えてたけど、 も し か し て どうあがいてもminiSD内のMP3データ読めない?
>495 Javaでは常に 0x0102 = 258 と解釈されるべき。 もしそうでないなら、バグ。
499 :
デフォルトの名無しさん :04/05/18 03:13
質問です。 VアプリP5型エミュv1.0でFileUtilityを使おうとしてます。 FileUtility fu = FileUtility.getInstance(); fu.play("/ms/icon.png"); すると以下のようなショボーンなWinダイアログが出て、コレを閉じるとIOException(not supported)が出ます。 ネイティブ再生 × パス名 OK /ms/icon.png txtでもhtmlでもmmfでも同じのが出ます。そもそもエミュとしての機能がそんなもんなんでしょうか?
>>500 MIDlet-Application-Security: ですか?
入れてみましたが変わりなし、そもそもFileUtilityはセキュリティ対象クラス・メソッドに指定されてませんし・・・
mmfならgetMediaPlayerから再生できるようなんですけど・・・
で、いろいろドキュメント読んでみたんですけど、
ひょっとしてFileUtility#playは動画再生のみサポートだったりします?
(開発編にあやむやに書かれてたり、Zentekサンプルがそもそも動画のみのものだったりで)
ezplusで定期的に自動でメール送信を行うアプリを作成中です。 IMAP4MailConnectionを使用して送信しているのですが、送信する時に 確認画面が出て停止してしまいます。 この画面を出さずに送信する方法があれば教えて頂けませんか?
504 :
デフォルトの名無しさん :04/05/19 22:39
>>503 迷惑メール送信業者の悪徳協力者ですか?
死んで下さい。
迷惑メールより、MP3再生が壁にぶつかっています。 たすけてください。 問題1 5MB級のファイルをロードできるのか。 問題2 どうやってスピーカーに吐き出すか。
>>504 おっしゃる通り、確認なしにメール送信を許せば迷惑メールに悪用できてしまいますね。
ただ、GPSの位置情報を定期送信したかっただけなんだけど、IMAP4MailConnectionは諦めます。
HttpConnectionでサーバー経由させるか・・・。
>>505 昔、Windowsでデコーダ作った事がありますが、仮に5MBのMP3ファイルを読み込めても
PCM取り出してそれを吐き出すデバイスを直接いじれる手段がないのでは?
ただ、Phase3から
・SMAF Humanoid Voiceデータ再生 他
って書いてあるからADPCMなら直接吐き出す方法があるんだと思います。
Voda用のニセ着うた変換ソフトを作りましたけど、正直、8KHzで4Bit程度じゃ
使う気もしないと思いますがw
>>506 レスどうもです。
ここは、焦点をPhase3に絞ったとしてもPCMを直接出力する手段が問題ですね。
スピーカーは糞としてもステレオヘッドフォンならそれなりの音質が得られると
思うので、何とかならないかとドキュメントあさり中です。
SMAF Humanoid Voiceってのは本体のROMに人間の声が事前に入っていて
それを再生するだけじゃなかったでしょうか?(よく覚えてないです
>>507 PCMアウトは無いよ。HVはデータをあらかじめ用意しとくか、スクリプトを使うかのどっちか。
まとめると、いくらがんばっても実現不可能ってことか?
デコードして波形を音階に変換してHVスクリプトにすれば不可能じゃないけど、現実的じゃない。
デコード→SMAFでもOK。
とりあえず、外部メモリからのロードは解決したみたいだが
>>511 さんが言う方法って音質悪くならないかな?
ezplus JDK1.3.1推奨ってなってますが、JDK1.4つかっても問題ないですか? 文字列の正規マッチングとか、JDK1.4にいろいろ使いたい機能があるので、出来たらJDK1.4 使いたいので。
>>513 ここで聞くことじゃない。auの技術支援サイトで質問しる。
推奨でないバージョン使うんなら何か不具合が起きても
誰もサポートできないってことくらいは当たり前に受け止めとけー。
>>513 CLDC+MIDPで正規表現なんて使えないと思うが・・・
自分でライブラリなり取ってきてkjxに入れれば使えるだろうけど。
しかし、ドキュメントでJDK1.3.1推奨といいつつも、KJXツールのデフォルトパスは JDK1.4 のものだったりする。
>>512 だからPCMアウトはねーつってんだろが。
音だしたきゃ
>>510 か
>>511 の方法しかねーんだよ。
ちなみに、データフォルダやSDからファイルを読む方法もねーんだよ。
miniSDも読み書きできる。
V-Appliの開発したいんだけどeclipseでどうやって設定したらいいのか全然わかりません・・・
質問です。 iアプリとVアプリでの違いというのかな。 そういうのをまとめてるサイトとかってありますか? 移植等は簡単に出来るんですか?
質問します。サーバー・クライアント型でサーバーから情報をもらうアプリ(内から)の通信速度について質問ですが、 この場合は、アプリのプログラムをどう工夫しようが端末の通常の通信速度よりも遥かに遅い速度が上限として決まっている と聞いたのですが、この認識であってますか? また、その速度は概略どの程度でしょうか?
あるクラスからCanvasクラスにrepaintさせたい時はどのようにすればよいでしょうか?
ちょっとハッキリさせときたいんですけど、 データフォルダやSDのデータ読める(書ける)のはVアプリですよね? EZは公式のみかと思ってたんですけど・・。一般でも可能なら教えてほすぃ。 自分なりに考えた方法ではストリーム開くときセキュリティ例外。問題はJAD?
>>525 repaintよびゃいいやん。
ホントにすぐにやって欲しい場合はserviceRepaints
>>526 EZじゃ無理。KDDIのPhase3用公式資料にかいてある
>>525 Canvas#repaint()
を呼べばいい。
解決しました。 レスありがとうございました。
> Phase1環境からサポートされるデータフォルダ連携機能(DataFolderConnectionクラス)が > 拡張され、データの書き込みや削除が可能になるとともに、連携可能なデータ種も追加されています。 それはともかく、Phase3用エミュレータ マダー?
>>532 一時期出てたけど、今は出てないことになっとる。
だから持ってる人は持っている。取り損ねた人は・・残念でした。
536 :
デフォルトの名無しさん :04/05/28 18:46
すみませんがちょっとお尋ねいたします。 J2MEWTK2.1を使用してRMS関連を操作するアプリを作成しているのですが、 RecordStoreのdeleteRecordメソッドを使用するに当たり困っています。 このメソッドは、RecordStore内の最終レコードしか削除できないのでしょうか? RMS内に保存したデータを削除する際、記録した最終RecordIdを指定すると 何も問題なくデータが削除できるのですが、1とか2とかの途中のRecordを 削除しようとするとInvalidRecordIDExceptionが発生して該当Record内の データが消えてしまいます。 それが仕様であるなら諦めも付きますが、お力をお貸し下さい。 宜しくお願いいたします。
すみません、自己解決できました。 問題は別の部分にあり、削除自体は出来てました。 削除したRecordIDのデータを再度読み込もうとしていて 例のエラーが発生していただけでした。 どうもお騒がせいたしました。精進します。
すみません、自己解決できました。 問題は別の部分にあり、削除自体は出来てました。 削除したRecordIDのデータを再度読み込もうとしていて 例のエラーが発生していただけでした。 どうもお騒がせいたしました。精進します。
byte[4]をintに変換するにはどうすればいいですか?
>>539 その、intが格納されているであろうbyte[4]がどうやって作られたかによる。
writeIntで書いたんならreadIntで読めばいい。
intを1バイトごとシフトしながらバラしたんなら1バイトごと逆にシフトさせながら組み立てればいい。
ただしこの場合は符号に注意。webで検索すればいくつかサンプルソースが見つかる。
>>540 シフトする方法でやってますがどうも数字があいません・・・
もう少し調べてみます。
エンディアンが逆なんじゃないかな?
整数のバイト化を(""+INT).getBytes()でやって 逆をInteger.parseInt(new String(BYTE))でやってるけど、どうだろう。 ストリング介してだけど、楽なんで、、、
>>543 基本的に間違ってる。
LittleEndianなら、
int i;
byte b[] = new byte[4];
i = 1234; //任意の値
b[0] = i >> 24;
b[1] = i >> 16;
b[2] = i >> 8;
b[3] = i;
でバイトに変換
int j = 0;
j |= (b[0] & 0xFF) << 24;
j |= (b[1] & 0xFF) << 16;
j |= (b[2] & 0xFF) << 8;
j |= (b[3] & 0xFF);
でintにもどす。
Little Endianの必要が無いなら、>540のとおりにすればいい。
>>544 すみません、JAVAもMIDPも初心者で見当違いなことを書いたようで。
シフトしながら読み込む事はどっかで読んだんですが、楽だから、
>>543 の方法でやってたんですが、不具合がでるんでしょうか。
それとも、あまりに常識はずれな書き方ってこと?
>>545 通常、数字を文字で表現するよりそのままバイナリで扱ったほうが
データ量も少ないし処理が高速。
この辺はJAVAとかMIDP以前の問題で、初心者用のプログラミング
の解説書とか読んだ方がいいかも。
こういうのは高級言語の弊害なんだろうなぁ・・・。
>>545 インスタンスの生成(new)と、それに伴って引き起こされるガーベージコレクションのコストは、
実行のコストが高いので気をつけるべし。
特に携帯だとCPUがへっぽこだから、気をすり減らすぐらい気をつけた方が良さげ。
>>546-547 回答ありがとうございます。
これに限ったことじゃないんですが、明らかに汚い処理なのは
分かっていても、きれいな書き方を分かってないのでついつい、
自己流の変な方法で、誤魔化しています。
MIDPの資料って、本もネットでもなかなか見つけられくて、、、、
携帯JAVAで綺麗なソースを書くために、なにか具体的な
お勧め(サンプルソースとか、本とか)って教えてもらえませんか?
過去に読んだのは、Java言語プログラミングレッスン(結城浩)上・下
→JBuilder MobileSet携帯Javaアプリケーション 布留川 英一
→JAVA2ME ゲームエータズガイド 米川英樹(読んでいる途中)
ですが、具体的な書き方をもっと知りたいなあと思ってるんですが。
最後の一行は無視汁。
>>539 はもう自力で解決してるかもしれないけど一応書いてみる。
int→byte[]のとき
算術シフト(>>)ではなく論理シフト(>>>)を使う。
byte[]→intのとき
各byte型の値で最上位のビットが'1'の場合(負数)はそのまま左シフトしても
期待通りの値にはならない。この辺は2進数の扱いとbyteがintにキャスト
されてから演算される仕組みを調べてもらえば分かると思う。
(「unsigned byte型」がないのでコトがややこしくなっている)
自分は符号対策込みのシフトする方法でint→byte[]、byte[]→intをやってる。
>>549 がんばって読もうとしてみましたが、英語+JAVAの2重苦で、、、、
やっぱり、携帯JAVAの前に、もっと普通のJAVAを勉強した方が
いいのかなあ。
漏れも別に急ぐプログラムじゃなければ543の方法使うけどな。 intは4バイトだから1,2桁程度なら文字の方がデータ少なくて済むと思うし、 544で5行書くところを1行なので、考えようによってはこっちのがきれいだと・・ と言っているのは初プログラミングがMIDPのへたれですが・・
544の方法でやったらうまくいきました。 レスしてくれた方々どもです。
>>552 >>553 携帯JAVA以前の問題なんだって。
プログラムがどうして動くか知っていればそんなこと絶対やらないような間違え。
君たちの場合は、まず、なぜプログラムが動くのか理解した方がいい。
仕事で携帯javaやってるけど、ポインタ使えないのはなんかもう 痒いところに手が届かないって言うか、 誰だこんな言語仕様考えたやつは!! あと、携帯にメモリ管理が細かに出来ない言語を採用したやつでてこい!!
>>556 そんな貴方に、BREW!
なんでもありの諸刃の剣C++でスリリングで難解なプログラミングが楽しめますYO!
あ、auは仕事ではやってないんだ(笑
Javaはポインタあるじゃん。
>>556 慣れればjavaの良さがわかってくるさ
>>560 遅い。ただそれだけでもうだめ。
どこからも参照されていないオブジェクトを開放してくれる便利システムも、System.gcの遅さで相殺。
>>559 ポインタを使ったjavaのコード書いてみ
あと、構造体もないしな
java に構造体がないという意見は始めて聞いた気がする。 さすが 2ch。いろいろな人がいるなぁ。
Classはあるが、Jarサイズがでかくなる。 構造体ならコンパイル時に分解されることでJarサイズが変わらずに扱えるのではないか! と好意的に解釈してみる。
>>563 それをポインタだと思ってるお前はJAVAを勉強しなおせ。
>>567 563ではないが、ポインタ以外のなんだとういうんだ?
むしろ567。お前が説明してみ。
NullPointerException
Null 「Pointer」 Exeption
Objectは全てポインタで扱うものだろうが。
簡易的なデータベースを作りたいんですが、困っています。 RandomAccessFile、seekが使えないようで。 ちなみにreadLineも使えないのかな。 外部ファイルの任意の1行を読み取るのはどうやったらいいんでしょうか。 行のサイズは可変長、固定どちらでも用意できますが、できれば可変長でやりたいです。
>>568 Java言語環境 第2版(7/10/96)
ttp://www.sun.co.jp/products/wp/JavaPS/index.html P.28
2.3 C/C++から削除された機能
ポインタ
調査の結果によると、プログラマがコード中でバグを起
こす主な原因がポインタの使用にあることが分かってい
ます。ポインタ構造を排除し、代わりに配列と文字列を
オブジェクトとして用意すれば、これらの構文に対する
ポインタの必要はなくなります。したがってJava言語に
はポインタはありません。C言語での配列、構造体、ポイ
ンタの操作は、Java言語ではオブジェクトとオブジェク
ト配列を定義することにより、より簡単にしかも信頼性
をもって実行することができます。
>>566 うん、その通り。
classにするのは容量的に無理
ちなみに、Javaだからというわけでなく
携帯で使う場合ということでね。
かれこれ10年C/C++やってきたもんでね。
(JavaにClass以外の構造体があったらごめん。Javaはじめたばっかなもんで)
ちなみに、ポインタがないってのは、ポインタ演算が出来ないっていう意味でつ
>>570-571 何を勝ち誇っているのかしらんが、用語を変えただけで、実質はポインタ。
配列も配列オブジェクトへのポインタ。
文字列もStringオブジェクトへのポインタ。
操作できないポインタをポインタと呼ぶのはいかがなものかということで、
呼び方を変えただけ。
本質を理解せずにうわべだけしか見ない奴はプログラマとしてすぐ行き詰まるぞ。
あおりではなく親切心からの警告。
むきになるな。 オブジェクトポインタと変数ポインタの区別もつかん馬鹿が多いだけだ。
>>573 ガベージコレクタがコピーイングを用いるものだと、コピーイングの度に格納メモリの位置が変わるため、
藻前さんが言う単純なポインタではJavaのインスタンスを表現できない。
この場合は、ダブルポインタでないとJava のインスタンスを表現できないことはおわかり?
Java,C#等の言語ではポインタのように明示的に格納メモリの位置を表さない参照という、
新しい考え方を導入することで、このような内部の複雑な事情を隠すことができるのだ。
操作できない明示的な格納メモリの位置を表現する"ポインタ"を考えたところでこれらの問題は解決しない。
どこが本質を理解しているのやら。うわべだけの知ったか君ハズカシイ。
>>573 実質がどうとかじゃねえだろ。お前は定義を無視するのかと。
今までの概念ではポインタだろうけど、JAVAにはポインタはねーんだよ。
JVMが参照をポインタで表現することはあっても、JAVAにポインタは無い。
参照はメモリアドレスを保持しているだけで、ポインタではない。 もちろん、ポインタに近いものではある。
どうでもいいが、話をMIDPに戻さないか?
ポインタの話とかよそでやれYO!
>>569 ファイル入出力はストリーム使うしかないんじゃないかな?
ファイル丸ごと読んできて、バイト列からString生成した後、
改行文字で分割してString配列作って、各要素にアクセスとか。
言語仕様としてのポインタの有無と、ポインタの概念であるところの「アドレスを 指し示すもの」の有無がごっちゃになって議論されているから、混乱してるように 見えるのだが。
>>578 ファイルが大きいわりに必要な部分が少ないので全部読むのは嫌だなあと思ってたんです。
CLDC1.0のdocをがんばって読んだら、こんなのを発見しました。
public ByteArrayInputStream(byte[] buf,int offset,int length)
public int read(byte[] b,int off,int len)
(off - データの開始オフセット
len - 読み込まれる最大バイト数)
開始バイト数と、lengthをなんとか計算することで、いけそうです。
Vdodaですけど、CLDC1.0のクラスってすべて使えますよね?(あまりよくわかってない。)
>>580 ok
ちなみに、行ごとに読み込むメソッドはなかったと思う。
>>580 列を扱える便利なのはないですか、、、残念。
>>578 さんを参考にしながらbyteでなんとかやってみます。
どうもありがとうございました
>>571 > 4.3.1 Objects
> An object is a class instance or an array.
> The reference values (often just references) are pointers to these objects,
~~~~~~~~~~~~~~~~~~~~~~~~~~
参照値はオブジェクトへのポインタである、とはっきり書いてますがな。
てーか、「Javaにポインタはない」はC/C++プログラマのJavaの理解を妨げる罠。
俺も何年も昔になるけど、Javaの Hoge hoge = new Hoge(); が
C++の Hoge* hoge = new Hoge(); と同じようなものだと気がついたときの
騙された感は最悪だった。
騙される方がおかしい。 >C/C++プログラマのJavaの理解を妨げる罠。 大したことない頭だから理解できないだけ。
>>584-585 必死だな。
間違えたなら間違えたと認められないと、プログラマーとして進歩できないよ。
別に間違えたからどうってことはないんだし。
>>583 ま、仕様書に書いてあるならしかたないが
> Javaの Hoge hoge = new Hoge(); が
> C++の Hoge* hoge = new Hoge(); と同じようなものだと気がついたときの
っていうのは、単純に笑えた。煽るためのネタだよね?
つーか今MIDPはネタ切れなんだよ‥ CLDC1.1とかMIDP2.0とか日本で出ないかね あと今度出るvodaのT4Gネタとか T4Gはどうですか?>プロの皆様
MIDP2.0出るよ。さすがにどこかは言えないけど
だいぶ前から話だけ動いてる感があるけど。。。
大きなデータファイルの途中のデータのみを読み取る方法を聞いた者
ですが、行き詰ってしまいました。
>>580 の方法がうまく行きませんでした。
●ByteArrayInputStream(byte[] buf,int offset,int length)
ファイルをすべてbyte[]に変換してから使う方法しか分かりませんでした。
直接データファイルの一部のみを読み込む方法が分かりませんでした。
●read(byte[] b,int off,int len)
このoffの値は、読み込む先のbyte[]の位置の指定でした。
読み込み元のファイルの位置だと勘違いしていました。
>>591 InputStream.skip(long n) を使えばイイ
正直
>>587 が何を言っているのか分からない。
誰か解説してくれ。
>>588 T4G? それは...
MIDP2.0? それは...
まだ書けないな。もうちょい待ってな。
でも、今から勉強しておいても良いと思うよ。
SunのWTKは公開されてるんだから。
なんだか「JAVAにはポインタ無いったら無いんだよウワァァァンヽ(`Д´)ノ」って奴が一人いるな。 匿名掲示板で間違えたこと言ったからって、恥じはかきすてろ。 素直に認めて学習したほうがお前のためだ。
なんだか「JAVAにもポインタがあるったらあるんだよウワァァァンヽ(`Д´)ノ」って奴が一人いるな。 匿名掲示板で間違えたこと言ったからって、恥じはかきすてろ。 素直に認めて学習したほうがお前のためだ。
結局、ポインタはあるの?無いの?
なんだか、「参照型はオブジェクトを指し示すものです」程度の意味に使われている「pointer」を、ここで話題にしてるC言語のポインタのことだと思って鬼のクビとったかのようなやつがいるな。 参照型の値がメモリ上のアドレスであることを定めた文章ではないのにね。
>>598 参照値を構成する要素の中のどこかにはある。
言語規定上は、ない。 実装上は、どうにかしてメモリの位置にたどりつける必要があるから、どこかにアドレスはある。
オブジェクトを配列で管理するVMなら、それも必要ないな。
>>598 Javaの参照はポインタである。ただし、Javaの参照はC言語のポインタとは異なり、
ポインタに対する演算と、基本データ型へのポインタの取得はできない。
こんなところでどうよ。
というか、ポインタという言葉を、Cのポインタやメモリのアドレスとイコールで結び付けてる人って
ちょっと了見が狭いよなあとか思ってみるテスト
Javaの参照がポインタではない実装もいくつかある。 結局、言語仕様と実装はわけて考えろということだな。
別にMagic Valueでも構わんわけだが。
ということで、だいたい結論もでたようなので ↓何事もなかったように携帯の話、どぞ。
けーたい
じつは、ねたなんてなかった
iアプリスレがあるから、ここは過疎。
>>591 そのおっきなデータって、ヒープに入りきらんの?
>>592 > InputStream の skip メソッドはバイト配列を作成し、n バイトが読み込まれるか、
> ストリームの終わりに達するまで繰り返しその中に読み込みます。
とJavaDocにかいてあるので、結局はスキップするところまで読み込んでることになるみたい。
>>610 そうなのか...
だとすると、 DataInput.html.skipBytes(int)も使えなさそうだな。
InputStreamでの実装がそうであるというだけで、 ほとんどのサブクラスではもっと効率のいい実装がされていると思うぞ。
どうもありがとうございました。
無事、
>>592 の方法で、指定位置のデータを読み取れました。
現在、1行固定バイトのデータに作り変えているところです。
>>610-612 InputStream の skipメソッドなら、skipするデータが大きくなると
遅くなっちゃうということなのかな。もしも、これ以外にできる方法が
あったら教えてください。
今回は、データサイズ的にはすべて読んでもいけそうですが、
なるべく効率的な書き方をしたいので。
>>612 そうでもない。ストリームなので先頭から順番にしか読めない。
>614は相当アホだな
某作者様の日記に "MA3/Phrase用のツール" について書かれていたんですが、 これって、MA3の音が使えるってことですか? YAMAHAにはもうないようですが、何か問題でもあったんでしょうか・・。 かなり使いたいのですが。
なぜ"某作者様"に質問しないの?
掲示板は雑談中心で質問しづらいし、メールで聞くのは大げさかなと思ったので・・。
>>616 公式とかなら分からんが、少なくとも一般(無料)アプリの作者は結構
質問とかされるの嫌いじゃないと思うよ。あまりに厨でなければ。
匿名である以外はここで書くのと、そうリスクに差は無いはず。
つか、当然のようにその作者様のほうが詳しいわけで、漏れらに聞かれても・・
すいません、仰るとおり、作者様に訊いてみます。 失礼しました。
621 :
デフォルトの名無しさん :04/06/09 13:23
Vアプリで、レコードストア内に保存したjarファイルにアクセスするコードを以下の様に、 RecordStore rs = RecordStore.openRecordStore("RecordStoreName",true); byte buf[] = new byte[65536]; InputConnection c = (InputConnection)Connector.open("jar://RecordStoreName/FileName", Connector.READ); InputStream is = c.openInputStream(); is.read(buf); is.close(); c.close(); rs.closeRecordStore(); としたのですが、なぜかエミュレータでしか正常に動作しません。 実機では、InputStreamを開く際に、 IOException:Not File Found: /FileName が吐き出されてしまいます。 どなたか原因をご存知でしたら、ご教授お願いします。
>>621 このスレのどこかで見たような気がする。
RecordStoreをopenするのをやめてみたら?
>>621 RecordStoreをオープンする必要ないよ
>>623 >>624 とりあえず、RecordStore周りを外して実行してみました。
ただ結果は、変わらずInputStreamを開く際に同じExceptionで止まってしまいます。
エミュでは動いているのでプログラムではなく、jarファイルや他の設定の方に問題があるのかもしれません。
原因がわかるまで、しばらくいじってみます。ありがとうございました。
626 :
デフォルトの名無しさん :04/06/09 17:49
すいません質問させてください。 iαppli Development Kit をインストールして、iアプリを作成しようと思ってます。 ソースを作って、resフォルダにコピーして、ビルドしても ビルドできません。 どうしてでしょうか? iαppliTool(DoJa2.0 Emulator),ver.1.03 Java2 SDK 1.5.0.beta2 パスも通ってます。
なんでβ使うかなぁ・・・とは思うけど、それ以上に、なんでresにコピーするかなぁと思う。
628 :
デフォルトの名無しさん :04/06/09 17:55
>>627 あっ! 私はアホです。
ご指摘ありがとうございました。
srcですね。 ビルドできました。
すいません。
そんなんでも役に立てて、おいさんはうれしいよ。
でもスレ違いw
632 :
デフォルトの名無しさん :04/06/10 00:36
phase3エミュを入手したラッキーメンがいたら うpきぼん
633 :
デフォルトの名無しさん :04/06/10 06:54
ドコモの携帯のムービーって転送する方法って どんなのがある?iモーションメール以外で
プログラムに関係あるか?ないだろ。
漏れもほしい
スレ違いだってことに気付け
637 :
デフォルトの名無しさん :04/06/10 17:46
iアプリのプログラム上でサーバーに接続して 動画を送ることってできるんじゃないかな。 あんまり大きなサイズになるとどうかわからないけど。。
スレ違いだってことに気付け
ここで質もんをば・・ VisualJ#で開発ってできます?
JavaとJ#って似て非なる言語じゃないの?
いんやぁ、SunOneStudioが使いにくかったから、JAVA開発環境として使えたらいいなぁと思って
JAVAをはじめて日が浅いのですが、困ってます。 Canvasで書いた画面で決定キーを押したら、Form画面に 行きたいんですが、どう書けば良いのでしょう。 ↓のような感じで書いたんですが、行き詰ってしまいました。 (必要と思われる部分だけ抜き出してみました。) public class Hoge extends MIDlet { public Hoge() { Display.getDisplay(this).setCurrent(new HogeCancas()); } } public class HogeCanvas extends Canvas implements CommandListener{ public void keyPressed(int keyCode){ int gameCode=getGameAction(keyCode); if(gameCode==FIRE){ ●● } } public void paint(Graphics g) { g.drawString("Hello World",120,60,g.TOP|g.HCENTER); } }
Formを作って、setCurrent()すれば良い。
>>643 ありがとうございます。
Display.getDisplay(Hoge.current).setCurrent(new HogeForm());でうまくいきました。
MIDPのAPIのオンラインリファレンス(日本語)ってない?
>>645 どっかに抄訳があった。
ほぼ完全なのは俺のHDDの中。
MIDP1.0なら、さかきけいさんの所にあるよ。 CLDC1.0はSunのサイトのどこかにあったはず。
さんくすこ
>641 IDE使ううまみはそんなにないと思うけどなぁ。どうせエミュはIDEの外だし。 ant最強と言ってみる。
デバッグしたいときは、エミュをデバッグサーバーとして動かして eclipseからリモートデバッグでいいのかな。
>>652 基本的にはそれでいいと思うけど、R2.x系だとIBM/OTIの連中が
SunのKVMの実装依存の部分に引っかかってbugがとれずリモートデバッグが
安定しない。antもR2.xだとメモリリークでかいしR3.0にしとくのが無難。
そいや、VアプリだったらエミュレータがUEI対応みたいなので、Eclipseよりも WSDD(Eclipseベースの商用環境)使うと連携がきれいにいくんじゃないかなあ。 9万円くらいしちゃうけどね。
656 :
デフォルトの名無しさん :04/06/14 07:05
今マスコットカプセルでゲーム作ろうとしてんだけど、なんかワールド座標系が 無いみたいで出鼻挫かれちゃったんすけど、皆さんどやって解決してます?
あんな平行投影で3Dを名乗る屑システムは使わない。 以上。
マスコットカプセルのバージョンは?
659 :
デフォルトの名無しさん :04/06/14 11:08
>>657 そすか・・・、で、他に選択肢ってあるの?
>>658 ん〜、どなんでしょ?
V-appli Emurator for JSCL 1.2.1にインプリメントされてるやつなんですけど。
>>659 ボーダフォン(Vアプリ) ドコモ(iアプリ) au(EZアプリ)
マスコットカプセル ver.1 50Kアプリ
マスコットカプセル ver.2 100Kアプリ DoJa2.0
マスコットカプセル ver.3 256Kアプリ DoJa3.0 EZアプリ(Java) Phase3
マスコットカプセル ver.4 256Kアプリ Ver.2 ??? ???
ずれすまそ Vアプリ iアプリ EZアプリ マスコットカプセル ver.1 50K マスコットカプセル ver.2 100K DoJa2.0 マスコットカプセル ver.3 256K DoJa3.0 EZ Phase3 マスコットカプセル ver.4 256K v2
マスコットカプセル ver.3なら、一応透視投影まではできるでそ? ともって、参考にしてた、ん・ぱかの人のところ見にいったら なんかまとまってた。
>>526 にもあるけど、EZアプリではデータフォルダやSDのデータを読み書きできない
というのがファイナルアンサー?
526に対するレスはできるという人とできないという人がいるけど
できるなら、どのメソッドでできるんでしょうか
>>663 漏れも知りたい。あとSD読める場合は何MBの
ファイルまで読めるのかとか。
データフォルダに関しては ・フォルダにある画像、音楽ファイルなどのリストを取得。 ・リスト内のデータに関する著作権とかの情報。 ・著作権無し音楽(着うた不可)の再生。 はできるみたいです。(sterdustのコピペ・・
いやスマンかった。
>>667 からゲットできる資料はMS-Word形式なんで誰もが読めるわけじゃないな。
しかしMS-Word形式で一般公開してるってauはアフォですか・・・
open officeを使えばとりあえず読める
671 :
デフォルトの名無しさん :04/06/15 17:49
SmafPlayerで音再生時にストレージ読むと 音がポーズかかるけど、どゆこと?>>W11K 知ってる神たのむ。
>>667 Phase3ではデータを書きこめるみたいな事が書いてあるな。
おれはPhase3の実機もエミュももってないので試せないが。
Phase3で追加された「データフォルダへのファイル書き込み」「データフォルダ内のファイル削除」と 「データファイルからのファイル読み込み」の機能はau指定のサーバに登録されたアプリでのみ使用可能。 いわゆる勝手アプリではデータフォルダからのファイルの読み書き削除はできない。 オフィシャルのコンテンツプロバイダがau指定サーバに登録したアプリでのみ利用可能な機能ってこと。
× 「データファイルからのファイル読み込み」 ○ 「データフォルダからのファイル読み込み」
>>671 音鳴らすのもストレージ読むのも結構CPU使うって事じゃね?
個人的な経験では音鳴らし中は再描画が遅くなったョ。
音鳴らし中に、記録>終了、ってしようとすると記録しないことあるらしいから注意
>>673 やっぱり・・。スッキリしました。dクス。
結局のところ、eclipseとか統合環境でブレークポイント貼ってデバッグってのは V-appliの開発では無理なのかな・・・誰か出来てる人いる?
MIDPで使える軽いXMLパーサってなんかない?
679 :
デフォルトの名無しさん :04/06/18 12:49
質問。 Vodafoneのアプリ作ってます。 2回キーが押された場合、その間隔をミリ秒で取得したいんだけど、どうすればいい?
>>677 俺はVアプリやったことないけど、エミュレータが
UEI対応なわけだからUEIサポートのIDEでリモートデバッグが
できない理由を思いつかない。試したほうが早いんじゃないか?
>>679 Dateの差分
基本だけど、マイナスになっても大丈夫なようにね。
VアプリのSDKに含まれるemulator.exeが-XDebugオプションないから デバッグサーバーになれないように思うんだけど・・・
混乱気味。もちっと調べよう。なんとかなりそうな感じだ。
ほう。 比較的自由に使えるのかね。
Voda P5でTV出力許可ってどうやったらいいんでしょうか。
VodaとEZで同じファイルを使って動かしたいのですが キャリア判別する方法無いでしょうか?
>>687 どうせ配布ファイルは異なるのだから、それぞれに作った方が楽だと思うけどね。
で、同じファイルで動くのなら、判別する必要なんて無いんじゃない?
多分、タイトルにforEZとかforJアプリとか入れる、そんな感じにしたいんだと思うぞ。
>>686 jadかmanifestに何か書くと思うんだけど、、、
>>686 vodafoneの資料を読んでみよう。載ってるよ。
どっかで見た。たぶんpdf。
>>689 みたいな感じでやりたいのですが
方法はありませんでしょうか?
海外版の携帯アプリを配信してくれるサイト知りませんか?アプリゲットのような MIDP互換で作ったので海外の人にやってもらいたいのですが
質問です。 約12時間ぐらい上げっぱなしのアプリって無謀? 通話なし、送受信が約40回〜50回レコード操作もありで 10時間で電池切れ。造りが甘いかもしれないとは思っているけど、 もっときちんと作れば、連続20時間使用できるというなら、作るが、無理なら餅が上がらん。 そんなアプリ作ったことある兄貴教えてください。
あ、Ez(JAVA)アプリです。
無理無理無理無理。 せめて待ち受けにしなさい
vodafone(P5)用のアプリをeclipse使って開発しているけど、 デバッガが見つからない。 誰か使いやすいデバッガがあったら教えてください。
>>694 イベントドリブンで作ればそんぐらい持つ、かもね。
本当に持つかどうかは自分で実験してくれ。
imonaみたいに通信時の受信済みのデータサイズを表示させたいのですが そのやり方分かる方いますか? ちなみにVoda用です。
>>699 てきとーにHTTP通信で送受信したデータ量を元に2割り増しくらいで表示しているだけ。
やりとりしたパケット数がわかるわけではない。
701 :
デフォルトの名無しさん :04/06/26 03:26
vodaでのリソース読み込みがiアプリに比べてかなり遅いけど、 速くする方法知ってる人いない? 勝手な推測だけど、iの場合、InputStream#read()とかで全データ一気に読めるのに対して vodaは1byteずつ読まないとダメ(実機でエラーになる場合がある)っていう違いが原因だとは 思うんだけど…
702 :
デフォルトの名無しさん :04/06/27 00:58
Vodaアプリ作ってます。 Threadをスリープさせて、同じタイミングでpaintを呼び出してるんだけど、300ms以下のスリープだと、タイミングが次第にずれてきます(エミュで)・・ (完全にではなくとも)同じタイミングでイベント起こすのってムリ? 解答くださる兄貴募集です。
>>702 何と何のタイミングを同じにしたいのか、よくわからんのだが。
repaintを呼んでも非同期でしかpaintは呼ばれんぞ。
>>703 Runnableをインプリメントしたクラスで
/* run */
public void run(){
while (true) {
try {
Thread.sleep(××);//××ms後にrepaint
} catch (Exception e){}
repaint();
}
}
/* paint */
protected void paint(Graphics g){
//描画処理
}
こんな感じに、指定した時間スリープさせた後にpaintを繰り返し呼び出したし。
(一定の間隔で、paintしたい)
何か勘違いしてる?
初心者でスマソ
>>702 repaint()の直後にserviceRepaints()を呼ぼう
sleep()の精度が悪いのも一つの原因かもしれず。
Sleepじゃダメだろ。 (他部分の処理時間+Sleepミリ秒)が一回のループになってしまって、だんだんずれていくぞ。
708 :
デフォルトの名無しさん :04/06/27 14:08
ezアプリにcompassクラスってあるけど、詳細がないのは何故???
以下、理屈の上ではフレーム安定。 long t = 0; while(true){ t = System.currentTimeMillis()+××; //あれこれ処理 while(0<t-System.currentTimeMillis()) ; repaint(); //※理屈の上ではxxms後に再描画≒フレーム安定 } ※は場合whileループ内に置くのが普通かな。 ただし以下の場合はダメ。 タイマーの精度がへっぽこ、もしくはxxとマッチしない System.currentTimeMillis()の実装がへっぽこ System.currentTimeMillis()自体が高負荷 repaint内容が高負荷 あれこれ処理が高負荷 もうとにかくへっぽこ これらの環境の場合はsleepで妥協しる。
というかよくみたら
>>704 は
catchでrepaint呼んでるが、
これはどのようなことなのか。わたしにゃわかりませんです。
>>710 俺も一瞬そう思ったが、
} catch (Exception e){} ←閉じてる
repaint();
}
なので無問題
713 :
デフォルトの名無しさん :04/06/29 06:57
714 :
デフォルトの名無しさん :04/06/29 14:05
Vアプリ開発をしようと思ってます。 P5型のエミュレータってJDK1.4+J2MEWTK2.0でも問題無いですか? あと、Windows2000上でのJDK1.4とJDK1.3の共存ってどうやってますか? もしJDK1.3を使う必要があるなら、 その都度JAVA_HOME変数をJDK1.3のパスに書き換えて使おうと思うのですが、これだけでいいのでしょうか? みなさんはどうやってますか?もっと賢い方法があったら教えてくださいm(_ _)m
J2MEWTKは今最新が2.1だけど、これはJDK1.4以上の対応ですよね JDK1.3では動かないかと 1.3と1.4の共存だと、どっちかインストールして、 フォルダごと別のところにコピーして、もうかたっぽインストールしたら あとはパスしだいで両方つかえますよ ウチは通常1.4使って、必要なときにパス書き換えて1.3使ってますが
716 :
デフォルトの名無しさん :04/06/29 20:13
>>715 WTK2.0はJDK1.4以上対応なんですか。ありがとうございます。
とりあえずJDK1.3とWTK1.0をインストールして使ってみます。
Win2kは環境変数を書き換えた後再起動しなくていいのが楽なんですが、
たまーに再起動しないとパスが通らない事あるんですよね。そこがウザイ。
一時的にpath変更するために環境変数書き換えるのもメンドクサ
set JAVA_HOME=C:\hogeとか書いたbatファイル用意して、cmd.exe立ち上げた後に適用するだけの方が楽よ
>>713 thx, ちとライブラリじっくり見ることにします。
いろいろやったがだめぽ。V-appliでデバッグできない。 Vodaのサイトにあるマニュアルにsun one studio4との連携について 書かれているがコンパイル、実行までしか書いてないのはそういうことだろう。 JADファイルのMIDlet-Jar-Sizeの値を実行時に自動更新してくれるのは、 UEI対応してるからのようだが・・・ そもそもV-appliのエミュにリモートデバッグするためのオプションがないっぽい。 eclipseのプラグインも落としてきたが使い方よくわからんしあきらめた。
まとめよう。 ・mp3ファイルを読むことができない。 ・mp3をデコードするにはCPUパワーが足りない。 ・音声を出力することができない。 これにて終了。
↑誤爆スマソ
724 :
デフォルトの名無しさん :04/07/01 03:07
V601SHを新規購入してみました。早速Vアプリ作成ー、と思ったら・・・ Vアプリを実機に落とすのってコンテンツアグリゲータに登録・うpしてからDLという形になるんですね。 ってことはV400,V300では自作のVアプリは遊べないってことですか? 友達がV401SHを使っているので、自作Vアプリを試してもらいたいんですが・・・。 iアプリはUSBコネクタなどで直接実機に落とせたのになぁ。 VアプリでなんとかUSBケーブルでデータのやり取りできませんかね? あぁ最悪・・・orz
釣りか? 多分1円で買ったんだと思うけど… あと数日でアプリ鬼性能のV602SHが出る vodaは今日から解約祭り 一般人がアプリをケーブル転送出来るのはauだけ
>>725 携帯買うのにお金掛けたくなかったんで。それにV602SHにさほど魅力を感じなかったので。
iアプリってケーブル転送できませんでしたっけ?
前に出来たんだけどな・・・ドコモカップの特別仕様だったのかな?
auいいなぁ。BREWが出て来てなんじゃこりゃ、と思ってVにしたんだけど・・・失敗したみたい・゚・(ノД`)・゚・
まあ、DOCOMOはダウンロード自体は勝手にできるからねぇ
voda自作アプリをテストできないのか・・・ 最悪だな
だから衰退してるんです。 アプリゲットとかいちいちメンドイし、作るアプリに制限かかるし、だめぽ
>>728 テストに(ダウンロードする)金がかかるというだけの話だが。
サードパーティの充実こそが繁栄の絶対条件なのにな
732 :
デフォルトの名無しさん :04/07/01 13:12
Vアプリって登録してからDLするまでに時間かかるんでしょ? もうアホかと。
VアプリっていちいちDLしなきゃテストできないのか。 256kbのアプリをつくったら 1kb=1024b=8パケット 256×8=2048パケット×0.3円=614.4円 実機でテストをするごとに614円払うの?
Vodaは元々海外市場の携帯電話だし、あっちじゃアプリなんて全然関心もたれてない。 だから、TVに映せるよ、音楽が聴けるよ、ってラインナップのうちの一つとして ゲーム向けの機種もあるよ、ってだけにすぎない。 アプリを意識してDoCoMoやauに追いつくつもりなら256kbアプリ対応機種(というかP5型)をもっと出すはず。 それをしてこないならやっぱVodaはアプリが動く携帯電話で勝負する気はないってことなんだろう。
735 :
デフォルトの名無しさん :04/07/01 14:52
ちょっとぐらい高くてもiモードにすりゃあ良かった・・・orz
Vは性能もよろしくないしな…。 さすが3巨頭の中でのワースト。 週間雑誌界のチャンピオンみたいな存在だ。
おもちゃとしてV602SHが欲しかったんだけど おもちゃとしてもこのままDoCoMoのほうがいいのかな・・・
なんでこんなにVodaが非難されるのか理解できたよ。まったくもってのクソキャリアだな。
>>737 おもちゃとしてならDoCoMoのほうがいいよ。
V601SH持ってるけど対して遊べるものがない。
搭載Vアプリでまともなのはぷよぷよ体験版だけど、90秒しか遊べない。
そのかわりメール関連は使いやすいと思う。
V602SHは601SHの基本性能がアップしただけっていうし、
メガピクセルカメラにこだわっていないのなら他の携帯にした方がいいと思う。
>>738 BREWってCだよね?あれが出てこなきゃauにしてたよ。
やっぱドコモ最強だな。個人向けの割引サービスがもっと充実すればいいんだけどなぁ。
auとvodaはユビキタス時代の到来を見据えていないのか?と思ってしまうわけだが。
>741 Vodaは知らんけど、au(BREWアプリ)とユビキタスは関係はないだろうと考えてみる。 ユビキタスは、どんな物からでも通信インフラやコンピュータの恩恵を受けられると いう仕組みの発想だから、アプリを作って入れ替えが出来るという時点でVodaもauも基 準はクリアしている。 Vアプリの配信の手間やezアプリ(BREW)の問題は、iアプリでも生きていたフリー ソフトウェアの文化から言えば逆行する仕組みだから、文句が出るんじゃないかね? 一発ネタアプリをBREWで作れるかと言ったら、間違いなくNOなわけだし (それ以前に審査請求なぞ、ネタアプリで出す気力もないだろうし)。 …携帯系Javaスレで語る内容ではなかったな。 申し訳ない。 >738 auの公式ページでは、VCで開発と書いてあった気がするよ。 まあ、BREW上でのJavaVMもHPで開発することが決定しているらしいから、いつかは BREW経由でJavaアプリも動かせるんじゃないかと、淡い期待を抱いてみたり。
>742 BREW上のJavaVMは、BREWの開発元のQ社が既に提供してる。
誰に提供してるのかしらんが、表に出てこないって事は 実用にはほど遠いって事か?
>742 MicroChai on BREWについては既にHP的には黒歴史なんじゃないか? HPのサイトで検索掛けてみたが、大昔のニュースリリースしか出てこんかった。
au は java機能は進化しつづけてるから BREWなんて使わなくてもいいんじゃない?
auのJAVAなくなっちゃいますから!残念!! まぁ、またいつか復活するだろうけど。
漏れもBREWオンリーになるって聞いた auはそうしたいんだと 携帯電話のメーカーがどう考えてるかはしらんが
ぶりゅでじゃばをうごかすというのはしょうらいてきにするんでないの? できたときにはじゃばあぷりうほっ!てなてるかはしらんがね
BREWだとSH-Mobile搭載無理らしいね
BREWで動くJVMを作れば…
BREWでJVM動かすにしろ、実機で動かすには登録がいるだろ 言語はjavaでもC++でもLispでも何でもいいけど、勝手に作れないのが問題
今度携帯電話を買い替えようと思うのですが 自分でゲーム作って遊べる奴で、お勧め(or 地雷)の機種があれば教えて下さい。 一応、AUにしようと思ってます。
>>755 Java P3対応のA540xCAにしとけ。間違ってもBREW機など買うなよ。
後はW11H、W11Kぐらいだな。
CA機はメモリー解放まわりにバグがある('A`) きちんと開放しる…。
あうのjava開発ツールを落としてみたのだが 単独で使えないのかよこれ JavaTM2Platform Standard Edition Version 1.3ってのがHPのどこにあるのかわからない…orz
愚痴をいちいち書かなくていいよ。 ネタも提供しなくていいよ。
初めまして。 現在ezアプリを作っているのですが,com.jblend.graphics.m2dパッケージの スプライト機能の使い方が解りません。 どなたかわかる方がいらっしゃいましたら すみませんが教えていただけないでしょうか。
何がわからないのかわからないと、教えようがないんだ。 まずはその手の初心者サイトいって、描画くらいまではやってからおいで。
具体的にはファイルの読み込みです。 //resフォルダの中にあるpngファイルを指定 SpriteImage si = new SpriteImage("/res/*.png"); //ここでエラーが出ます。 java.io.IOException: cannot load /res/*.png これをどうにかしたいのですが。
>>766 とりあえず解決しました。
本当にありがとうございます。
768 :
デフォルトの名無しさん :04/07/14 11:18
はじめまして。 質問です。 現在、複数機種で待受けアプリを開発しているのですが、 EZやVodaに通常起動と待受け起動を判別する機能はないのでしょうか? 調べてみたところ、DocomoにはgetLaunchType()というメソッドあるようですが、 EZ・Voda(MIDP)にはそれに当たるようなものが見つかりません。
Vodaの場合、 System.getProperty("jscl.system.wakeupmode") 通常起動 : "1" 待受起動 : "2" タイマー起動 : "3" ということだそうだ。JSCLのバージョンは未確認。
>>769 Vodaではできるんですね。
レスありがとうございました。
>>769 補足しておくとこの機能が使えるのはJSCL-1.2.x(つまりP5型)のみ。
>768 KDDIのAPIドキュメント(Javadocとか書いてあるリンクの先)は落として読んだ? Phase2.5からcom.kddi.matiukeパッケージが追加になってるから そこいらへんを参考に。
スマソ。読み返してみたら「状態を取得する」ストレートな方法はないね。 失礼しますた。
皆さんレスありがとうございます。 レスを元にして調べてみたところ Vodaの「System.getProperty("jscl.system.wakeupmode")」に対し、 EZにも「System.getProperty("kddi.system.wakeupMode")」というものがあるらしいのですが、 これには待受け状態の取得はないみたいですね。 0=通常起動、1=Cメール起動要求を受けて起動、2=アラーム起動 とのことで。 まとめると・・・ Docomo:Doja2.0以降で可 AU:不可 Voda:P5型のみ可 といったところでしょうか。
詳細は割愛するが System.getProperty("kddi.system.wakeupMode")で取得できる値は"0"〜"10"で "8"が「ユーザの待ち受け設定による自動起動」
>>775 "3"以上の値もあったんですね。
調べが足りなかったようで申し訳ありません。
訂正ありがとうございます。
Docomo:Doja2.0以降で可
AU:可(Phase2.5以降?)
Voda:P5型のみ可
VodaのP5のFileUtilityでmp3のパスぶん投げたら mp3再生してくれるのかな? >ファイルをネイティブアプリケーションで再生します。 と、あるけど。
正規表現を使いたいんですが何か良い手ありますか?
正規表現を解析処理するCGIの類を鯖に置いて そいつを叩く。とか。
Vodaアプリで通信を別スレッド?で実行したいのですが どうやってやればいいんでしょうか?
>>780 こうしなきゃいけない、ってやり方はないから好きにやればいいよ。
ちょっと質問が漠然としてる気もするが、具体的な方針を説明すればよい?
メインのオブジェクトとは別に通信用のオブジェクトを用意して、
そこでスレッドを走らせればいい。
例えばメイン処理にMain.java、通信用にCom.javaを用意して、
comオブジェクト内のrun(){ 通信処理 } をmainオブジェクト側から起動させる。
結果の受け取り方も好きにすればいい。
通信結果を格納するpublicな変数をcomオブジェクト内に用意して
mainオブジェクト側でその変数を常時監視して、値に変化があったら取得するとか。
または、mainオブジェクト側にpublicな変数を用意して、comオブジェクトで
処理が済んだタイミングでその変数を書き換えるとか。
…もしも。
スレッド起動のやり方や通信のやり方が分からないということであったら
携帯アプリの作り方を説明した基本的な参考書でも読んでおくれ。
V60x機種は、どのくらいのヒープメモリがあると期待していいんでしょうか。 ドキュメントにはV601SHは1229KByteって書いてあるけど、 601Tとかできれば2000KByteくらいあって欲しいなぁ・・・ >777 試してみた感じでは、ネイティブ実行してくれるのは動画だけのような感じだったんですが、どうでしょ? エミュではMMFもPNGもTXTも「not supported」とかエラー吐きました。
ボーダの256k ver2は256k ver1とAPIは同じで、 違うのは機種の性能ってことでいい?
784 :
デフォルトの名無しさん :04/07/20 21:58
常駐してもいいですか o(゚∀゚o) (o゚∀゚o) (o゚∀゚)o 完璧に過疎ですか 無理やり盛り上げてもいいですか おまいらキー入力まわりどうやって処理してますか 素直にイベントハンドラ内でやっちまいますか キーリピートはどうしてますか オブジェクト指向とかで書くようになりましたか お話しようYO
漏れはキー入力周りの処理は独自クラスを作成していて、InputDevice#getKeyState()な感じになってる。 あと趣味で作成しているのでスピードをあまり気にせずに激しくOOPしている。 イベントハンドラ中で書くと描画中にステートが変わる可能性があるのでやめた方がよさげ。
>>785 キー入力はやっぱりそうか
つぅか自然とそうなってイクよな
OOPはプロの場合はどうなんだろう
OOPな感じじゃないとデバッグマンドクサイんじゃないかと
常々おもったりおもわなかったししているんだYO
仕事でやってるヤシも教えてくれYO
OOP。 そんなものは忘れないとお仕事のMIDPアプリは書けません。 クラスは二つ。MIDletのサブクラスとCanvasのサブクラス。それが全て。 ああ、OOPを完全に忘れちゃうとイベント取れなくなっちゃうからその辺はてきとーに。 (´-`).。oO(なんでJavaで書いてるのに、フィールドの名前の衝突気にしなきゃならないんだろう)
通信用のスレッドは?
>>787 いまだにそうなのか・・ターゲットが256kアプリでも?
>>783 V2はJSCL-1.2.2仕様になっている為、カラオケ関連など使えるAPIが増えている。
漏れの相手はPhase2.0のあうなのですよ。 Phase3.0用には(ほぼイコールQVGA機種ということもあり) 画像他差し替えて別バイナリ作るけど、 だからって流石に書き下ろしてられんしorz ちなみにPhase2.0ではHTTP通信は同期だったり(……のはずだが) だから独立スレッドは要らないのです(……と思うんだけど)
ふむふむなるほど・・小が大をかねるわけだな・・ 同期だとスレッド イラヾ('A`)ナイ の?そうなの? 非同期のときは必要なの? 通信てアタイよくわかんない。 暇な人いたら説明キボン。 で、256k専用アプリ扱ってるヤシの登場キボンヌ!
先週から携帯Javaをはじめました。 AUのKJX作成ツールで、java.lang.Mathを使用するには どこにクラスパスを通せばいいのでしょうか? >C:\EZAppli_SDK\bin\project\None\src\foo.java:140: シンボルを解釈処理できません。 >シンボル: メソッド cos (double) >位置 : java.lang.Math の クラス > >double foo = Math.cos(arg);
>>793 J2MEでは浮動小数点やsin、cosはつかえんよ。固定小数点なら使えるのでがんばってや。
>>791 ==787
HTTP通信は同期メソッドだけど、別スレッドでやった方が良いと思う。
通信中と分かる動きのある表示を出した方がユーザビリティがある。
#面倒いのでやりたくないってのは分かりますけど...。
うん、やりたくない。 趣味プログラママンセー。 // というかHTTP通信まだ書いたことない
799 :
デフォルトの名無しさん :04/07/21 17:00
i-Appli のメールからのアプリ起動
--B:A
TEXT="アプリ起動"
ADF="
http://demo.co.jp/test.jam "
"Param1"="1234"
"Param2"="abcd"
みたいなのって、
Vアプリ と Brew でできるんですかねぇ??
知ってる人教えてください。
できません。BREWはスレ違い。
801 :
デフォルトの名無しさん :04/07/21 17:06
>800 外部からのアプリ起動で、何か言い方法は無いんですかねぇ...
サー、無理やり盛り上がってまいりますた(・∀・) で、256k専用アプリ書いてるヤシいないのかYO
256KB専用アプリったって、単に100KBより大きいアプリなら256KB専用アプリだし、
P5型でのみ使える機能を使えば容量小さくても結果的に256KB専用アプリと言えるし。
>>802 は何をもって256KB専用アプリと言っていて、それで何を聞きたいのよ?
>>803 OOPは利用されているかどうかを知りたいんだYO
(o゚∀゚o)
250KBって大きいようで小さいよな… orz
8bitCPU全盛の頃は、32kとか64kでも広大に感じた訳だが・・・
>>781 スレッド起動のやり方や通信のやり方は分かるのだが
通信開始の方法とかがわからんのです
簡単に説明すると
mainで接続命令
↓
comでtxtファイル読み込み
そこに書いてある情報を頼りに
jpgファイル読み込み
↓
mainに受け渡し&表示
という処理なのですが
接続命令をどうやればいいのかと・・・
接続命令って、なんのこといってるんだろう。
俺、携帯アプリのプログラマになりたいから興味あったんらけど 256k専用書いてるヤシはイナイと・・(・A・) プロはOOP禁止と・・
OOPってなんですか
オブジェクト指向か
V601Tなんですが、 destroyAppでRecordStoreへの書き込み処理を書きました。 P5型のエミュではちゃんと動くんですが、 実機V601Tだとどうも保存内容がおかしくなる、もしくは保存されていない、そんなようです。 destroyApp以外で全く同じ保存処理をやらせても問題ない。 終了時にdestroyAppが呼ばれないのはC4型のみ。 destroyAppに処理5秒も絶対かかっていないと言い切れる。 なんか心当たりないでしょうか。
その5秒が何の根拠か分からないけど 処理が多いときdestroyAppで記録できないとかってのは EZでもあるし、MIDlet全体でありうるんじゃない? destroyAppで書いたこと全部やらないと終わんない、 っていう仕様っだったとしたらそれは問題だと思う。
>>814 > 5秒
開発ガイドTips編v1.0.4の1.1.3節に、
P型の場合destroyAppは呼ばれてから5秒後に強制終了される、
と書いてあるんで、この5秒に引っかかっていないってことをいいたかったんです。
やりたい処理自体は実機でも体感できないほど早いんですがねぇ。
結論としては、destroyAppにはあまり期待しない方がいいってことですかね?
保存されないならまだしも、変な値で保存されるっぽかったりと、もう大変で・・・
ユーザからのキー入力があるたびにRecordStore開いて保存しまくりなアプリの方が逆に安心できそうです・・・
RecordStoreへの書き込み自体は重くないから、適宜書き込んでるほうがいいと思う。 電源断とかいう可能性もあるわけだし、データが壊れててもなんとかできるようにつくるのが いいかもしれないが。
>>816 キー入力ごとに保存しまくりにすることにします。
どうせ、RecordStore内容はバッファリングされて、
不揮発メモリへの書き込みはアプリ終了後になるようですし、
あんまパフォーマンス気にしなくてもよさそうなので。
>>813 P5ならApplicationManager#flushRMS()で随時書き込み。
実装が機種依存かどうかまでは知らないが。
destroyApp()はハード側の都合による終了処理の真っ最中なわけだから
ソフト側としてはここに処理は書きたくないな、というのが正直なところ。
余計なお世話かもしれないが。
例えばソフトキーに終了機能を割り当てて、ユーザーのキー押下で
アプリ終了処理をし、notifyDestroyed()を呼び出すというやり方もある。
これなら終了処理にかかる時間を気にしなくて済むし、確実に終了処理を
させられるし、destroyApp()には何も書かなくて済む。
Vodaエミュで通信するとエラーになるのに 端末ではきちんと動くのは どーゆーことですか?
>>807 =780
「通信のやり方は分かるのだが通信開始の方法とかがわからん」
というのがどういうことなのか分かりませんが(^^;
通信処理はまずURLを指定してサーバへ接続することから始めます。
Connector.open()を使います。
その後、ストリームをオープンして、データを読み書きして、
最後にストリームと接続を閉じます。
使用するAPIはCLDCのAPIリファレンスで確認してください。
具体的なソースはネットで検索したりvodafoneのドキュメントを参考にしてください。
VもEzもエミュはつかえん。
AスレッドからBスレッドの再描画できないの?
それはスレッド間通信のことか? Graphicsを使いまわしているってことなら、結果は完全に実装依存だな。 できなかないが、何が起こるかはわからん。
c =(HttpConnection)Connector.open(url); in=c.openInputStream(); data=new byte[(int)c.getLength()]; for (i=0;i<data.length;i++) data[i]=(byte)in.read(); in.close(); c.close(); で通信してるのですが、 収得済みデータサイズを出したいのですが出せるのでしょうか? 100バイト中50バイト受信しました な感じの・・。 imonaにあるようなやつです。
あああああああああ 容量制限が、UZeeeeeeeeeeeeee!!! 容量ダイエットのために、ソースの可読性を落とさなければならないなんて……ぐすん。 ソースの可読性をそのままに、コンパイルしてくれるプログラム、あったらいいのに。 例えば、ソースに含まれる public static final な定数を、 すべて生の数字に変えてからコンパイルを実行する、とかね。 それぐらいだったら、実現できそうだよね。難しそうだけど。
>825 おーい。J2SE1.3.1over使ってるか? 最適化デフォルトならそれくらいはやってくれてるぞ。 jadかなんかでディスコンパイルすりゃ分かる。 あとProGuard使ってみるとか。
>>824 コンテンツサイズと受信ずみサイズをインスタンスフィールドにする
受信するごとに repaint()する
paint()でプログレスを自前で描画する
定数置換するだけならいろいろあるっしょ。
>>827 受信済みサイズってdata.length?
無知でスマソ・・・
スマソ 解決しました
>>825 気持ちはわかるが、それは基本的には最後の手段だぞ。
単に容量落とすだけなら、いろいろ手段はある。
ProGuard類の使用でオビュファスケーション&最適化して削る、
C用のプリプロセッサ等を併用してマクロ&インライン関数の恩恵にあずかる、
7zip等の強力なアーカイバを使ってJARのサイズを削る、とか。
一定以上攻め込んだアプリ書こうとすれば、どうしてもクラスを削除したり
汚いソースを書かざるを得なくもなるが、それ以前にできる努力も馬鹿にならない。
がんばれ。
ところで、言いがかりだと思うんだけど、RetroGuardって、
クラスが(つーかJAVAファイルが)複数あると、機嫌損ねない?
時々実機はおろかエミュでも動かんJARが作られてしまう気がする。
ProGuardは大丈夫なのかな、その辺。
2004/07/25 14:42:55 java.util.jar.Attributes read 警告: Duplicate name in Manifest: MIDlet-Name 2004/07/25 14:42:55 java.util.jar.Attributes read 警告: Duplicate name in Manifest: MIDlet-Vendor 2004/07/25 14:42:55 java.util.jar.Attributes read 警告: Duplicate name in Manifest: MIDlet-Version 2004/07/25 14:42:56 java.util.jar.Attributes read 警告: Duplicate name in Manifest: MicroEdition-Configuration 2004/07/25 14:42:56 java.util.jar.Attributes read 警告: Duplicate name in Manifest: MicroEdition-Profile 2004/07/25 14:42:56 java.util.jar.Attributes read 警告: Duplicate name in Manifest: MIDlet-Data-Size 2004/07/25 14:42:56 java.util.jar.Attributes read 警告: Duplicate name in Manifest: MIDlet-1 コンパイルのときにこのエラーが出るのだが・・・ どーゆー意味?
Vodaでテキストフィールドを表示させるにはどうすればいいのでしょうか?
>832 前の開発で使ってた限りではだいじょぶだったYo > ProGuard 恐らく数十回はビルドを繰り返したが一度もその手のトラブルに 引っかかったことはなかった。 最初使ったときはうっかりベリファイ済みのclassファイルに適用して 「なんでじゃー!!」と頭を抱えたことがあるがw >833 ……読んで字のごとく、MANIFEST.MFに 同じMIDlet-Nameを複数書いてるんでないの? 見直ししる。
>>835 レスサンクス
でも、Graphics gで書かれている内容と切り替えるには
どうやれば・・・・
分かりにくくてスマソ
>>837 Graphics? Displayableを理解してないのか?
paintの引数のGraphicsはCanvas描画用のグラフィックで、えっとえっと・・・何からいえばいいんだろ。
ArithmeticExceptionエラーが出るのだが、 見当たるところがない・・・。 考えられるのは sh.info=1; というのしかないのだが、 これで発生する可能性あるの? ってか、もしこれだったら解決法よろ・・。
>840 で、そのshって何よ?
shというスレッド
それだけでわかったら超能力者だな。
>>839 サンクス
出来ました!
がその逆はどうすれば・・・。
Display.getDisplay(this).setCurrent(new HogeCancas());
だとエラーになるし。。。
Cancasだから・・? どんなエラーなのかだそうよ。
ホゲカンカス いい名だ
private Image readImage(String url) { try { NETWORKinfo=1; c =(HttpConnection)Connector.open(url); in=c.openInputStream(); NETWORKinfo=2; data=new byte[(int)c.getLength()]; for (i=0;i<data.length;i++) { data[i]=(byte)in.read(); repaint(); } NETWORKinfo=3; in.close(); c.close(); main.NETWORKinfo=0; return Image.createImage(data,0,data.length); } catch (Exception e) { //例外 NETWORKinfo=0; } } で通信、
if(net.NETWORKinfo==1){ g.drawString("接続中...",0,259,g.LEFT|g.BOTTOM); }else if(net.NETWORKinfo==2){ g.drawString(""+DataALLSize+"/"+DataGetSize,0,259,g.LEFT|g.BOTTOM); }else if(net.NETWORKinfo==3){ g.drawString("処理中...",0,259,g.LEFT|g.BOTTOM); } で表示してるのだが、 最初の通信の開始の時だけArithmeticExceptionが出る。 エラーメッセージは java.lang.ArithmeticException occurred in main.paint(Graphics), ignored. です。
↑ スミマセン・・ 自己解決しました
>>834 もしかして、
Display.getDisplay(this).setCurrent(new HogeCancas());
とか書くことが切替えだと本気で思ってんの?
setCurrentのカッコの中を対象のインスタンスを指す変数書けばいいのよ。
MIDletで
Form form = new Form(〜);
〜Canvas canvas = new 〜Canvas();
と書いたら(〜は自分の使う内容に合わせて)、切替えたいときMIDlet内で
Display.getDisplay(this).setCurrent( form );
とか
Display.getDisplay(this).setCurrent( canvas );
とかすりゃあいいのよ。
>>850 javax.microedition.lcdui.Display の getDisplay(javax.microedition.midlet.MIDlet) は (main) に適用できません。
Display.getDisplay(this).setCurrent( from );
と言われるのですが。。
スレッドの中で処理してるのがいけない?
>>851 Javaの基礎がわかってないような気がする。
getDisplayの引数には、MIDlet(及びその派生クラス)を指定するんだよ。
853 :
かけだしJavarer :04/07/28 15:38
Vアプリ作ってるんですけど、 コンパイルは通るんですが、エミュレーターで実行しようと思うと、 NoClassDefFoundError: comp/./testapp at javax.microedition.midlet.MIDlet.main(+38) destroy Old Emulator.... って出て実行できないんです。 調べてみたらコンパイルの時点で、pathがどうこうって、書いてあるんですが、 よくわからなくて困ってます。 どうゆう事なんですかねぇ...(汗)
>>853 同じ質問をあちこちでするな。
PATHがつながってないんだよ。
ちゃんとエラーに書いてあるだろ?
855 :
かけだしJavarer :04/07/29 11:11
それがわかんねぇから聞いてんだよ。
人に聞く前に自分で調べろ阿呆。 エラーメッセージすら読めないんだったらそもそもプログラマは務まらん。
そんなこと言わずに教えてやれよ
859 :
デフォルトの名無しさん :04/07/29 15:39
>>856 わかんねぇんだろ?他のスレでわからないやつはだいたい
こんなメッセージ書きやがる。
>>859 うまくいかない原因を探して、対策を考えて、それを実行する。
その当たり前の手順が当たり前にできない馬鹿は、結局問題の本質を把握
できてないから、その場を乗り切ったとしてもまた同じような問題で引っかかる。
だから、自分で手と頭を使って調べたり考えたりすることが当たり前にできない
奴がプログラムを書こうとするのがまず間違い。周りに迷惑をかけるだけかけた
挙句、結局何も身につかずに終わるのがオチ。
なんでム板でこんなレベルの話をしなければならんのだ。
861 :
かけだしJavarer :04/07/29 19:23
>>859 いや、そんなに熱くならなくてもいいんですけど...(汗)
ただ、色々調べてもなかなか解決しないんで...
at javax.microedition.midlet.MIDlet.main(+38)
destroy Old Emulator....
ってやっぱり出るんですよねぇ...
>>861 ド素人がどんなソース書いてんかなんて想像つかんのよ。
コンパイラ(機械)がエラー内容教えてくれてんのを無視するようなやつに
生身の人間が親切に教えてくれると思うか?ちょっと考えてみ。
NoClassDefFoundErrorなんてのはJavaでは(初心者が)よくやる間違い。
どんな環境でアプリ作ってんのか知らんけど
最初に実行するクラスがちゃんと指定されてない(JADのMIDlet-1)んだろ。
J2MEのWTKなら初っ端にプロジェクト名とクラス名あったと思うけど。
>>861 ソースコードとjad、manifestをまとめてどっかのアップローダに
上げてみたら、良いアドバイスがくるかも。
ここも夏ですか。_| ̄|○
親切な奴も結構居るんだな。 >> 861 まずは、何を使ってビルドと実行をしているのかを言わないと対処方法は分からん。 WTKか?バージョンは? それとコンパイル時に出てるメッセージがないと何が起きてるかワカンラン。 そもそもアプリはビルドできてるんか? 質問する時には、必要な情報を出すのが基本だぞ。 まったく、MIDP2.0端末の開発に忙しい時に...。
口調は荒くても、親切な奴ばかりだなw とにかく質問するときは、状況をこれでもかと詳しく書くこと。 特にエラーメッセージ書かずに「エラーがでてできません」なんて言われても困る
俺は別に困らんけどな。
よーしパパ >867 を困らせちゃうぞー JAVAをインストロールできません サンのページからダウンロードしてきたファイルをダブルクリックしたんですが、エラーが出ます。 いろいろやってみたんですがわかりません、困りました。 サンのサイトが壊れてるんでしょうか? OSはWINDOUSでCPUはセレロンです。 ドコモのNのパカパカで動くFFみたいなRPGを作りたいです。 >867 さんよろしくお願いします。。。。。
しまった、こっちはMIDPスレだったorz 「スレ違い」の一言で済むな。
>>868-869 867は「俺は質問するだけで、こたえねーから困らん」と言ってるんだが。
いや、ちゃんと説明されてない質問には答えないので、困らないといいたかったんだが。
UDP使いたいにゃー
874 :
デフォルトの名無しさん :04/07/30 23:28
初心者なんですがP5型の開発環境(バーコードリーダーとか)作るには JDK1.4、WTK2.1、P5型用のVodafoneエミュレーターで作れるんかな? で、CLDC-1.0、MIDP-1.0、JSCL-1.2.1でいいんですかね? Vodafoneのドキュメントにそこまで書いていないような・・・ あとはPathの設定とかでっかね?
WTKは1.0.xのほうがいいような。
JDK1.3の方が良い予感。
877 :
デフォルトの名無しさん :04/07/31 12:53
JADとマニフェストファイルを生成する メタプログラムをJavaで書いてみましたです。 おまいらはXMLとか使ってるですか。
antにおまかせ。
879 :
デフォルトの名無しさん :04/07/31 13:54
ふむ。 ヴぉだのサンプルもantでビルドな雰囲気だよな。 使ってみるかな。
質問します。 ボーダフォン用アプリの自作環境を作成中の者です。 ボーダフォン提供の「SpriteCanvasクラス」を使ったプログラムから、 コマンドラインにてJAR・JADファイルを作り、携帯の実機で実行するところまではできました。 ですが、プログラム変更のたびにJADファイル内の「JARファイルのサイズ」を 書き換えなくてはなりません。 それがめんどうなので「J2ME,Wireless Toolkit」を使って、ビルドのたびに JADファイルを作ってもらおうと考えました。 ボーダフォン提供の「SpriteCanvasクラス」を使っていますので、 「J2ME,Wireless Toolkit」には(コンパイル・事前検証の際に)、 ボーダフォン提供のライブラリ「stubclasses」を見てもらはなければなりません。 「J2ME,Wireless Toolkit」のlibディレクトリに「stubclasses」をコピーしたり、 いろいろやってみましたが、ビルドに失敗します。 他の方々は、この「J2ME,Wireless Toolkitを使って、ボーダフォン提供のクラスを使った アプリを作る」ということを、どうやって実現させているのでしょうか?
>>880 auのKJX作成ツール使うってのもいいんじゃない?
つか漏れはEZメインだから、KJXツールしか使ったことねぇ。
>>880 Wireless Toolkitのlibディレクトリにmidpapi.zipってファイルがあるはずだ。
この中にstubclassesの中身を一緒に圧縮しなおせばOKなはず。
みなさんサンクスです! >881 さっそく試して使ってみたところ、JARファイル内「JADファイルサイズ」を更新してくれて いましたので、自作用バッチファイルに組み込みました。心配していた環境作りは、 881さんのおかげで解決いたしました。ありがとうございました! >882 au用のアプリは作ったことがないのですが、auの独自拡張APIである「KDDI Profile」を使うプログラムを、 Wireless Toolkitでビルドしてらっしゃるのでしょうか? もしそうでしたら、Wireless Toolkit(のコンパイル・事前検証の際) に「KDDI Profile」を見てもらうのに どうやってらっしゃるのですか? その方法が、ボーダフォン提供のライブラリ「stubclasses」を見てもらうことの参考になればいいのですが。 >883 >397さんのレスからたどって、「+lacha」というツールを使ってみたのですが、 このツールを起動する際の「SHIFT+ダブルクリック」で出てくるウインドウが、 レスからたどった説明と違ってたので、行き詰まっておりました。 また、自分で考えた方法として、「stubclasses」 のファイル名を「midpapi」に書き換えて、 Wireless Toolkitのlibディレクトリ上のものと置き換えると、 ボーダフォン提供のクラスを使わないプログラムはビルドできたのですが、 使うプログラムは以下のように表示されてビルドできませんでした。 「ERROR: native methods should not appearError preverifying class com.jblend.io. ConnectorImplcom.sun.kvem.ktools.ExecutionException: Preverifier returned 1 ビルドに失敗しました」 再圧縮の方法は、もう少しいろいろ試してみます。ありがとうございました!
>>884 WTKを使うわけではないです(のでWTKを使って、ではなく、以下参考までに)。
詳細は397の綿100号さんのサイト見てもらえば書いているんですけど、
KJXツールではWTKでビルドするのとほぼ同様の手順を
midpapi.zipに加えauの拡張API(kddip3.jar)を使ってやってくれます。
ここで使うAPIファイルは変更・追加できるので、
kddip3.jarの代わりにstubclasses.zipを使うように指定するだけでOK。
886 :
デフォルトの名無しさん :04/08/01 10:27
vodaエミュ(P5)のキーリピート制御 DiviceControl#setKeyRepeatState(int key, boolean state)て バグってるぽ? まったく制御できずリピートイベントが発生するのは 方向のみっぽいのですけんど。 情報求ム〜
>885 ご丁寧な説明、ありがとうございます! そのツールは、代わりに指定できるということで、使えそうですね。 今度やってみます。そうなると、「まさか、au用のツールを使うことになるとは・・・」という ことになるんですね。 とても参考になりました!
>>886 Vアプリ開発ガイドTips編
JSCL - DeviceControl
注意:
・DeviceControl#setKeyRepeatState()の振る舞いは端末の実装に依存する。
>>888 んーんー・・
そか。ありがd。
システムだよりのリピートは事実上使えないってとこかね〜
890 :
デフォルトの名無しさん :04/08/01 18:18
Vアプリ初めて、かつ初心者です。サンプル(HelloWorld)プログラムを コンパイル、preverify、jarファイル作成、エミュレーターで動作確認後 アップして携帯実機で動かそうと思ったらダウンロードはできるんですが 実行(起動)するとエラーとなって起動できません。 どんな原因が考えられるでしょうか? お助けを。 jadファイルやマニフェストファイルには間違いないと思うのですが・・・
>>890 まずはTIPS参照だYO
それでもダメなら端末の種類とソース類アップだYO
ガンガレ ノシ
だね。
特にMANIFEST.MFの解釈とエラーメッセージの内容には
機種毎の差がアホほどあるから、まずは
>>892 から丁寧に逝ってみよう。
ぶっちゃけ、ある程度実機でのテストに慣れるまでは当たり前の様に
見舞われる現象で、かつ、一度目星さえ付いちまえば、十分自分で対処できるようになる
ネタでもあるので、餅突いてがんばれ。
894 :
デフォルトの名無しさん :04/08/02 01:34
すいません。似たような質問が並んでしまうかもしれませんが JDK1.4、WTK2.1の環境でP5型対応のアプリを作ろうとしています。 が、WTKでビルドする際にstubclasses.zipをそのプロジェクトのlib に入れてjarファイル作成するとstubclasses.zipまるごとjarファイルに 入ってしまいます。(ファイルサイズがデカクなります) それをVodafoneのエミュで動かそうとしてもエラーが出る。 コマンドでjarファイルを作成するとjarファイルのサイズは問題なく できるのですがVodafoneのエミュではやはり動かない。 エミュではat javax.microedition.midlet.MIDlet.main(+38)って エラーが出ているんですけどね。 なんか説明もヘタですいません。 なんかヒントがありましたらお願いします。 自分でがんばろうとは思いますが・・・ easyなミスでしょうか??
>>894 なんでそう、中途半端なエラーメッセージしか書かないんだろうなぁ・・・
少なくとも、前者のjarに追加クラスがまとめて入ってしまうのはダメ。
896 :
デフォルトの名無しさん :04/08/02 02:09
>>895 レスありがとうございます。
エラーは・・・エミュのメッセージ表示画面には
それしか出てきません。。。
コマンドからjarファイル作成してもやはりエミュでは動きません。
今もずっとやってるんですけど。。。
>>896 jarの拡張子zipにして展開したら
そもそもクラスが入ってなかったとか
マニフェストファイルで存在しないクラスを指定しているというような
実行不能な場合に
エミュは
javax.microedition.midlet.MIDlet.main(+38)
を吐く。
easyミスの可能性99%です。
ガンガレ ノシ
@javacでコンパイル -bootclasspathを指定していますか。 必要なクラスが生成されていますか。 Apreverifyでクラスを検証 -bootclasspathを指定していますか。 確実に検証できていますか。 検証を忘れていると エミュはat javax.microedition.midlet.MIDlet.main(+38) を吐いて実行できません。 見た目上(ファイルサイズなどで)検証済みであるかどうか わかるとは限りません。 BMANIFEST.MFと検証済みclassと必要なリソースでJARファイルを作成 忘れ物があっても誰も教えてくれません。 不安があったら拡張子をzipにして展開してみましょう。 足りないものがあったら実行時にエミュが at javax.microedition.midlet.MIDlet.main(+38) を吐きます。 Cその他の注意 MANIFESTファイルとJADファイルの以下の部分が共通ですか。 MIDlet-Name: HelloWold / MIDlet-Version: 1.0 / MIDlet-Vendor: orz MANIFESTファイルの MIDlet-1: HelloWorld,,Test は正しく指定されていますか。後ろの方はエントリのクラス名です。 不要な拡張子はつけていませんか。 その他不必要な項目はありませんか。 このあたりのことがカッタルイのは経験者ならよく知っている。 乗り越えて見た実機で動く高精細のHelloWorldは美しかったYO ガンガレ ノシ
アプリゲットにVアプリをアップしようとしてるんだけど サイズが50k超える辺りで拒否られる。 なんでか教えてプリーズ
MIDlet-OCL: JSCL-1.1.0
MIDlet-OCL: JSCL-1.2.0
>>900 jadファイルにJSCLのバージョンかいてみたら?
>>901 サンクス!
それで通った、ということは
アプリゲットは俺に断りもなく審査の仕様変更したわけだな
そうかそうか・・俺は放置ですか・・
過去に通したやつまで通らないから
おかしいと思っていたんですがね・・o..rz
>>902 一応いっておくが、MIDlet-OCLの記述は必須だから、
今まで問題なく動いていたのがたまたまの偶然ということになる。
・・・まぁオレも人のこといえんのだが・・・
以前は任意の属性です。 たまたまの偶然などといい加減なことをいわないでください。
com.nttdocomo.ui.FontのgetLineBreakにかわるAPIはMIDPにもありますでしょうか? それともsubstringWidthとかを使って自分でチェックするしかないのでしょうか?
>>903 そだったっけ?
少なくともC4型仕様が一般に公開された時点では、ドキュメントに必須って書いてあったと記憶してたんだが、
P4型のみの時は必須じゃなかったのか。
>>905 たぶんsubstringWidth使わないとダメ。
今んとこ等角フォントばっかりだと思うから、等角フォント前提にすれば位置探す処理を簡易化できる。
「ありますでしょうか?」ってドコの国の言葉なの?
ようこそドコモの国へ
「在りますでしょうか」ってことだろ 日本語を読めない人もいるんだな
ございますか
911 :
デフォルトの名無しさん :04/08/03 17:06
ござる
日本語に、敬語を二重に使う用例は無いということだよ。
「ないのでしょうか?」とその後に聞いてるのだから、 「あるのでしょうか?」と聞けばよかったわけだな。
SH53の在庫ありますでしょうか? てな感じで現実的には使われてますけどね、 文章にすると違和感ありますでしょう。
間違えだってことを知らないか、知っていてもつい使ってしまうんだろう。 ら抜き言葉と同じでもう世間に広まっちゃって修正できないことかもな。
文章で書くなら、「ございますでしょうか」の方が自然だよね。
日本語の乱れなんちゅうて流通したもん勝ちですよ。 清少納言が現代の日本語聞いたら なんと言の葉の乱れたことよ、よよよ。 とさぞかし嘆くことでしょう。 食べられますか?なんて言ったら 国語の先生に「ら」が多いと怒られる日も 来るかもしれなくってよ? ここは何のスレなんディスカ?
ここは何のスレだ
2ちゃんのあらゆるスレは正しい日本語講座スレにすり替わる可能性を秘めてます 愛国心はまだ衰えてません
922 :
デフォルトの名無しさん :04/08/04 12:55
ご質問です。 Vアプリ P5型でHTTP通信を行うためには、 ・ポートは80番のみ ・サーバのMIMEタイプ設定ファイルに application/java か application/java-archive の設定を追加する。 ・実際の通信時にはCGIプログラムのHTTPヘッダに application/java か application/java-archive を設定する ・アプリ側でも通信時にはHTTPヘッダに application/java か application/java-archive を設定する つなみに、VアプリP5型では、 iアプリのような"text/plain"形式のテキストを送受信する場合でも、 application/java か application/java-archive を設定する のでしょうか? どうかご教授いただけますとありがたいです。
922です。 上記の設定で間違いや足りない点等ございましたら、 ご指摘頂けますとありがたいです。 よろしくお願いいたします。
この流れで、「ご質問です。」と書かれると、ネタとしか思えんなあ。
>>922 いくらなんでも自分のすることに「ご」をつけるのはおかしいと気づかないのか?
自分に対して尊敬語っていうのは相手に対して謙譲語と同じレベルだぞ?
空気を読んで軽くボケた
>>922 に
>>925 がマジレスして
空気を凍らせてしまっているようにも見える。
ここは難しいインターネッツですね。
927 :
デフォルトの名無しさん :04/08/04 17:34
>926 そのようですね。 >925 ここで「ご」についてだけ書き込みするなら、いちいちうるさいですよ。 意味は通じてるはずですからね。
928 :
デフォルトの名無しさん :04/08/04 17:48
929 :
デフォルトの名無しさん :04/08/04 17:49
ところで、1000になる前に922の質問内容に答えてあげたらどうなの。
Micro3D V3を使っていて、 複数のモデルを描画したいんだけど、具体的にどんな手順を踏めばいいの? ちなみに、1つのモデルを描画、2つのモデルを同一座標に描画はできました。 モデル自身が持っている座標を変える方法が分からなかったので、 ViewMatrixに平行移動を無理やり合成して、1つ描画するたびにViewを更新、 2回に分けて描画したら、2回目のほうによってしまいました。これは間違いだった模様・・ やはり、Figureの内部に座標を持っているとして、その座標をいじらないといけないのでしょうか? それとも、低レベルライブラリを利用して自分で作らないと駄目? 教えてえらいひとー
>>930 iアプリでの経験だけど、
1)単位行列を用意
2)スケーリング
3)回転
4)平行移動
5)ビューポート変換
の順で変換行列を作って、Graphics3D#setViewTrans()でMicro3Dの変換行列
自体に設定した上でGraphics3D#renderFigure()してやることでできることはできた。
ただ、動くんだけど釈然としない方法ではあるので、他にもっといい方法があるかも。
>>931 ありがとう、とりあえずは実績のあるその方法でチャレンジしてみるよ、ママン
933 :
デフォルトの名無しさん :04/08/05 00:40
MIDP1.0 で、PNGファイルを実行時に編集することは可能でしょうか? 例えば、PNGファイルを読み込んで、上下反転とか、画像サイズを2倍にしたりとかってことなんですけど、、、 どなたかサンプルキヴォンヌ また、resフォルダにBMPファイルを入れて置き、 実行時に BMP -> PNG と変換して、表示させるようなことをしてる方はいらっしゃいますか?
>933 >PNGファイルを読み込んで、上下反転とか、画像サイズを2倍にしたりとか MIDP1.0の範囲内では無理。 読み込んだ画像に文字を入れる、くらいなら可能だけど。 (Image#getGraphics()でGraphicsインスタンス取って(ry ) BMPをPNGに変換するのは……やってできんことはないかもしれんが、 多分エンコーダで20kは食う。素直に開発機上でPNGにしなされ。
>>933 できるかできないかということなら、できないということはない、ってとこかな。
PNGのバイナリデータを直接いじる必要があります。
JSCL1.2ならImageに読み込んで、描画する際にいろいろできるけど。
わざわざBMPからPNGに変換してるような変な人はいないと思われ。
>>934 ,935
純粋なMIDP1.0だけではやはり無理ですか。
ただ、画像ファイルがいっぱいあり、どうにかしてアプリサイズを小さくしたくて、
実行時に画像ファイルを作り出すようなことをしようと思っております。
幸い、左右対称、上下対象な画像データが多いので、どちらか半分だけ画像データとしてもっておいて、
実行時に反転して読み込んで一枚の画像にしようかと、、、
その際、PNGデータを直接扱うよりかは、BMPの方が簡単そうなので、
BMPで元データを作って、実行時にPNGデータを作り出すのはどうだろうか?
と考えた付いた次第です。
みなさんは、大量にデータファイルがある場合にどうやってアプリサイズを小さくしているのでしょうかねぇ・・
どんなにたくさん画像使ってんだろ。 VならとっととSprite使うのがいいな。
>>922 その質問は、Javaではなく、HTTPの質問ってこと?
設定するってのは、リクエストのAcceptヘッダと
レスポンスのContent-Typeヘッダのことだよね?
application/java や application/java-archive は Java。
テキストなら text/* 、イメージなら image/* などになる。
あと、VはDと違って、TCP/IP上のHTTPのはずだから、
特別なことはないと思う。でもゲートウェイが邪魔することはあり。
>>936 サイズを小さくするのに BMP を使うって、なぜ?
BMPの方がでかくない?
どんな画像データか知らないけど、プログラムで描けないの?
>>936 容量制限ギリギリの攻防でないならアプリサイズを小さくする努力はしない。
画像ファイルが多くて容量の関係からリソースに含めきれない場合、
アプリ起動後にサーバから取得してストレージ領域に保存する。
画像は基本的にPNGフォーマット。
いくら線対称な画像だろうと内部で生成することは考えない。
90度単位の回転、上下反転、左右反転で使い回せる画像なら
正位置の画像だけ持っておき、描画時にそれらの操作を指定して表示する。
もちろんauやVodafoneが用意している拡張Graphicsクラスを使ってだ。
自分の場合はMIDP1.0のみにこだわる必要がないのでこのようにしている。
>>936 透過属性がなくてもいいなら、
Image.createImage(w, h)
で動的に作り出せるよ。
あとスピードを求めないなら、左右対称とかは楽勝だけど。
1ドット幅づつ逆からdrawImageしていけばいい。
942 :
デフォルトの名無しさん :04/08/05 09:32
VアプリにてPNGを仮想画面(drawBackgroundで描画する領域)に描画することは 出来るのでしょうか? 出来るのなら方法を教えてください。
Vアプリ開発ガイドによると C型だとACanvas、P型だとSpriteCanvasでpaint()をオーバーライドすれば Graphicsメソッドを呼び出せるらしいです。 注意点が幾つかあるようなのでガイドを参照した方が良いと思う。
945 :
デフォルトの名無しさん :04/08/05 10:18
iアプリだとカメラ画像を読み込んでアプリの背景等にdrawImageをすることができるのですが、 Vアプリでも同様なことができるのでしょうか? サンプルサイト等ご存知でしたら教えて下さい。
>>945 SpricateCanvasのpaintのGraphicsに対する描画は背景になされるので、
paintでGraphicsに描画後copyAreaで転送して、
フレームバッファでさらに加工してdrawFrameBufferすればOK
>>946 レスありがとうございます。
私は942の方とは別人です。
カメラ画像のファイル名選択および読み込みの部分はご存じないでしょうか?
938さん レスありがとうございます。 サンプルプログラムがあるサイトなど、 ご存知でしたらリンク貼って頂けますと助かります。
VODAで、アプリからクリップボードにテキストをコピーする方法ってないですか? VODAのJAVADOC探してるんですが見つけられません。
みなさん、レスありがとうございます。
>>937 >VならとっととSprite使うのがいいな。
残念ながら、SprintPCSなんです。
>>939 >サイズを小さくするのに BMP を使うって、なぜ?
>BMPの方がでかくない?
確かに元データはでかいですけど、JARにすれば小さくなるので、
ひとまずOKかな、と。
まずは実行ファイルサイズ容量をどうにかするのが先決なので、、
その後、ヒープが足りなーいとなるのかもしれませんが orz..
>>940 >画像ファイルが多くて容量の関係からリソースに含めきれない場合、
>アプリ起動後にサーバから取得してストレージ領域に保存する。
これが有力候補ですね。
>>941 >透過属性がなくてもいいなら、
残念ながら透過属性が必要なんですよ。。
>>951 普通に考えてBMPをJarに入れたとき、PNGより小さくなるとは思えないよ。
PNGの圧縮は効率が良くなるようにフィルタ処理も加わるから、大抵素の物をdeflateするよりは小さくなるの。
Jarの圧縮によっぽど優秀なdeflateツールを使って、PNGのツールがヘタレなら逆転するかもしれないけど。
>>949 機種依存になるかもしれないけど、
東芝機種はTextFieldなどでユーザに文字入力をしてもらっている画面でコピーができるので、
ユーザに手動でコピーしてもらえる環境を用意することはできる。
あんま使えんけど。
>>947 なら、CameraConnectionとStorageConnectionのクラス概要くらい嫁。
>>951 試しに、BMPをzip圧縮してみ。
どれだけ使えないかがわかる。
とっととPNGにしる。
俺は1ドットずつ打つ処理を高速化するために、バイト配列→無圧縮PNGやってた。
>>953 携帯で使うサイズくらいならPNGファイルよりもBMPのときの方がいい場合が多いよ。
余計なヘッダないし。
使うグラフィックを大きな画像一つにまとめて、Imageの切り出しで使うってのはどうなんだろ。
>>955 そこが不思議なんだよな。
大きな画像1つにまとめた段階で、透過属性がなくなってしまうのだが…。
まとめた段階でというか、切り出したときに透過属性が付加されないんでしょう。
958 :
デフォルトの名無しさん :04/08/06 18:00
すみません、JARツールのことで質問です。 JARにディレクトリを指定し、その中の特定のファイルだけをアーカイブに 含めないようにしたいのですが、JARツールでこのようなことは可能でしょうか? オプションを見る限り無理っぽいのですが、別のツールを使った方法などで やり方をご存知の方いらっしゃったら宜しくお願いします。 具体的には以下の様なケースです。 res/aaa.gif ← res/bbb.gif ←resフォルダ中のファイルはJARに含めたい。 res/ccc.gif ← res/.svn/・・・ ←このディレクトリ以下のファイルはJARに含めたくない。 要はファイルをSubversionで管理しているのですが、その情報がディレクトリに 含まれてしまうのでJARから除去したいのです・・・
バッチファイルで resフォルダをcopy、 コピったフォルダから.svnフォルダ削除、 jar -C コピッたフォルダ 削除 /Q コピッたフォルダ むにゃむにゃ。元通り。jarゲット。なんてね
eclipse は楽でっせ
eclipse起動遅いからイヤン
うちは、 resOrgフォルダっての作って、そこをSubversionの対象にして resフォルダは対象外にしてる。 で、バッチファイルでresOrgからresにコピーしてから、jarを作成するようにしてる これじゃめ?
あ、結局リソースを削除したときに残るから make前にresフォルダ内をクリアしてるわ やってることは、959とほぼ一緒でした。
>958 antのjarタスクで、filesetのexclude使えば解決。
そろそろ次スレ準備?
>>952 ,953
おっしゃる通りですね。BMPより強力なPNG圧縮かけたほうが、
サイズが小さくなりました。
>試しに、BMPをzip圧縮してみ。
1. BMP 474KB -> JAR 24KB
2. 1.のBMP無圧縮PNG 475KB -> JAR 25KB
3. 1.のBMP圧縮PNG 20KB -> JAR 20KB
素直に、最大限圧縮したPNGファイルを反転したファイルも含めて
JAR化してやった方がいいのかな・・
>>954 無圧縮PNGで実行時に画像ファイル作成されたんですね!
実機での調子はいかがでしたか?
メモリ使用量、読み込み、表示レスポンスなど、問題なかったでしょうか?
>>968 A5403CAだったけど、256*240の画像でバイト配列から無圧縮PNGにするのに1秒強くらいかかるよ。
メモリ使用量までは覚えてないや、ゴメン。
>969=954 横からスマソだが 何かそれだと、オフスクリーンのImage持っといてそこに描いた方が 早そうに思えるんだけど……漏れ何か読み落としてマスカ??
>>970 俺の場合、リアルタイムに256*240の画像を作成する必要があって、
普通に1pixづつ描いていたら時間がかかるから、バイト配列→PNG
という手段にでただけ。なので、オフスクリーンとかは関係ない。
お世話になってます。
おかげさまで作成しているアプリがアプリらしくなってきました。
Vアプリでブラウザ起動がうまくいかないのですが・・・・
BrowserConnection brs;
String url2 = "
http://www.yahoo.co.jp ";
try {
brs = ( BrowserConnection ) Connector.open(url2);
brs.connect();
brs.close();
} catch (Exception e) {}
jadファイルはMIDlet-Network: Y 以外に必要なものとかありますかね?
なんかお気づきの点がありましたらお願いします。