CLDC+MIDP+携帯電話用Javaスレッド part 2
1 名前: [sage] 投稿日:03/12/08 13:49
J2ME CLDC+MIDPベースの携帯電話用Java(主にEZアプリ、Vアプリ)に関するスレッドです。
質問でも議論でも何でもこい、と。

前スレ:
携帯JAVAのスレッド
http://pc2.2ch.net/test/read.cgi/tech/1011977260/

--
Java一般に関しては:
【初心者】Java質問・相談スレ37【大歓迎】
http://pc2.2ch.net/test/read.cgi/tech/1070159693/

NTT DoCoMoのiモード携帯電話用Java(iアプリ)については:
iモード携帯電話用Java(iアプリ) Part 4
http://pc2.2ch.net/test/read.cgi/tech/1067139509/

>>2あたりにリンク集


2 名前: [sage] 投稿日:03/12/08 13:50
Google
http://www.google.co.jp/

Java 2 Platform, Micro Edition (J2ME)
http://java.sun.com/j2me/
Reference Documentation(仕様書やAPIリファレンス)
http://java.sun.com/j2me/docs/
J2ME Wireless Toolkit
http://java.sun.com/products/j2mewtoolkit/

EZアプリ技術情報
http://www.au.kddi.com/ezfactory/tec/spec/ezplus.html
Vアプリ技術情報(Vodafone Developers Support Site)
http://www.dp.j-phone.com/dp/

3 名前:デフォルトの名無しさん [] 投稿日:03/12/08 18:28
3

4 名前:デフォルトの名無しさん [] 投稿日:03/12/08 18:38
MIDP2.0やったことありますか?

5 名前:デフォルトの名無しさん [] 投稿日:03/12/08 20:04
質問。
HttpConnectionでCGIにアクセスしたときに、サーバー側CGIで環境変数は拾える?
HTTP_REMOTE_HOSTとか。

6 名前:デフォルトの名無しさん [sage] 投稿日:03/12/09 01:44
MIDPだけで何ができるのやら・・

7 名前:デフォルトの名無しさん [sage] 投稿日:03/12/09 10:15
>> 6
MIDP2.0 なら、キャリア拡張仕様が無くても、かなりのことができるよ。
そして、JTWIなら...。

やめとこ、守秘義務が...。


8 名前:デフォルトの名無しさん [sage] 投稿日:03/12/09 15:42
VodafoneのP5型にてVアプリの作成中なのですが、
MailTransportListener
の使い方が・・・いまいちわかりません。
もしよかったら、サンプルのある場所等ご存知でしたらお教えください。


9 名前:デフォルトの名無しさん [] 投稿日:03/12/09 21:54
MIDPで年・月・日・曜日の習得ってどうやってやるんだ?
時間はできたんだけどなぁ・・・・

10 名前:デフォルトの名無しさん [sage] 投稿日:03/12/09 22:06
java.util.Calendar クラス


11 名前:デフォルトの名無しさん [] 投稿日:03/12/09 22:14
>>10
サンクス

12 名前:デフォルトの名無しさん [] 投稿日:03/12/10 21:00
SmafPlayer player=new SmafPlayer();
smafData=new SmafData("/he.mmf");
player.setData(smafData);
player.play(true);

これで再生するとリピート再生になってしまうのですが、
解決方法を教えてください。。
*細かいところは省略してます。

13 名前:デフォルトの名無しさん [sage] 投稿日:03/12/10 21:15
>player.play(true);
player.play(false);
または
player.play(1);
にする。

カッコの中はboolean指定で繰り返し再生の有無。
数値で繰り返し回数。

14 名前:デフォルトの名無しさん [] 投稿日:03/12/10 21:37
>>13
レスサンクス。

が。また問題が発生。
再生を終了したら
player.stop(); を実行するようにするには
どうすればよいのでしょぅか?

いままでは
if(c==he){
if(select==0){player.play(false);select = 1;}
else{player.stop();select = 0;}
}
でボタンを再び押せば停止って感じだったんだけど、
player.play(false); で再生したら止まるようになったので・・・

15 名前:デフォルトの名無しさん [] 投稿日:03/12/10 21:39
ezアプリなんですが、
アプリを実機で動かし、http通信をすると下記のようなresponseがきます。

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta http-equiv="Cache-Contorol" content="max-age=0" forua="true"/></head>
<card><p>リクエストされたページは表示できません。</p></card>
</wml>

GETで、サーバ側のCGIが動きDBからデータをとってくるはずなのですが・・・
エミュレーターでのHTTP通信だと問題はありません。

なにかご存知の方いらっしゃいましたら教えてください。

16 名前:デフォルトの名無しさん [sage] 投稿日:03/12/10 23:16
>>14
MediaPlayerListenerを使えばいいのでは。

>>15
詳しくはわからないけど、エミュレータは、直接サーバに通信してるんじゃないかと。
実機だと、KDDIのサーバを経由するので、エラーチェックとかに
引っかかってると思う。

ドキュメントによると、WMLとかHDMLは送信できないとか、いろいろ制限があるみたいだけど。

17 名前:デフォルトの名無しさん [] 投稿日:03/12/11 20:27
>>16
インタフェースを2つ以上実装するにはどうすれば・・・

implements MediaPlayerListener,CommandListener,Runnable
だとエラーになるし・・・

18 名前:デフォルトの名無しさん [sage] 投稿日:03/12/11 23:29
implements MediaListener, TimerListener, Runnable
で普通に通ってるけど。


19 名前:デフォルトの名無しさん [sage] 投稿日:03/12/11 23:46
インターフェースのすべてのメソッドを実装してる?

20 名前:デフォルトの名無しさん [] 投稿日:03/12/12 13:47
>>15
16が書いているようにKDDIのサーバを経由するので、使えるデータタイプが
制限されてます。CGI で出してるデータの Content-type がなにになって
いるか調べてみてください。テキストだと text/plain、バイナリだと
application/octet-stream にしとくのが無難かと。

21 名前:デフォルトの名無しさん [] 投稿日:03/12/12 16:44
16, 20の方ありがとうございます。
データをhdmlのタグで包んで返さないといけないとかそういうことでは、
ないんですね。

22 名前:デフォルトの名無しさん [] 投稿日:03/12/12 18:20
EzWebアプリのダウンロードすると
ダウンロードデータが正しくありません。
と表示されてうまくダウンロードできないのですが
どうすればいいでしょうか。

htmlの中身
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<title>au</title>
<meta http-equiv="Cache-Control" content="no-cache"/>
<meta name="vnd.up.markable" content="false"/>
</head>
<body>
Hello<hr>
<object data="Hello.kjx" type="application/x-kjx" copyright="no" standby="download">
<param name="disposition" value="devkdj2" valuetype="data"/>
<param name="size" value="2337" valuetype="data"/>
<param name="title" value="Hello" valuetype="data"/>

</object>
</body>
</html>



23 名前:デフォルトの名無しさん [] 投稿日:03/12/12 18:24
>>18.19
サンクス。
メゾットが抜けてただけでした・・・。。

24 名前:デフォルトの名無しさん [sage] 投稿日:03/12/13 18:26
特定の機種以外はHDML+CGIでないとダウンロードできない。

ezgetというCGIがおすすめ。

25 名前:デフォルトの名無しさん [] 投稿日:03/12/13 19:10
1つのみ選択可能のリストを表示し、
選ばれたら確認画面→それをレコードに保存するには
どうすればいいのでしょぅか?

26 名前:デフォルトの名無しさん [sage] 投稿日:03/12/13 20:00
>>25
List→Alert→RecordStore

27 名前:25 [] 投稿日:03/12/13 21:35
Listを
public void paint(Graphics g)
で表示出来ない・・・

ってかオプションとか使わないとダメとか?

28 名前:デフォルトの名無しさん [sage] 投稿日:03/12/14 00:42
ListはCanvasと同じようにDisplayにsetCurrentして表示。


29 名前:デフォルトの名無しさん [sage] 投稿日:03/12/17 12:47
前スレが読みたいです…

30 名前:名無しさん [] 投稿日:03/12/17 18:08
pngファイルの色変更ってプログラムで、できますか?
容量制限の関係で、ファイルを沢山もてません。
具体的には、1パターンの人間の画像をjarに入れておいて
服の色、頭の色違いで何パターンか元ネタから、プログラム内で生成し、
レコードストアに入れておきたいのですが。

やり方や、サンプルなどご存知の方がいらっしゃいましたら教えてください。

31 名前:デフォルトの名無しさん [sage] 投稿日:03/12/17 19:08
>>30
ttp://jasrv.com/mob_e/tips/index.html
ttp://tech.millto.net/~pngnews/kndh/PngSpec1.2/PNGcontents.html
ttp://www.aya.or.jp/~sanami/peace/memorial/code21-30.html#CODE26

この辺。

32 名前:デフォルトの名無しさん [sage] 投稿日:03/12/18 07:32
>>29
ttp://www.rarul.com/k-tai/java/1011977260.zip

33 名前:デフォルトの名無しさん [sage] 投稿日:03/12/18 12:19
>>32
ありがとうございます。

34 名前:デフォルトの名無しさん [] 投稿日:03/12/22 19:36
.jar を逆コンパイルする方法ってある?

35 名前:34 [] 投稿日:03/12/22 19:46
追加で、AU用のkjxファイルです。
ソースファイルが消えてしまったので・・・・

36 名前:デフォルトの名無しさん [sage] 投稿日:03/12/22 19:52
> ソースファイルが消えてしまったので・・・・
アキラメレ


KJXカッター
ezplusの実行形式KJXファイルを簡単にJADファイルとJARファイルに戻せる

jarはzipと同じなので、適当なツールで伸張

Java逆コンパイラ(沢山あるからググれ)にかける


37 名前:デフォルトの名無しさん [] 投稿日:03/12/22 23:00
int mode = 0;
で定義したものを
レコードストアから呼び出したものに置き換えたいのだが、

RecordStore rs=RecordStore.openRecordStore("test",false);
byte[] b=rs.getRecord(1);
まで呼び出したまではいいのだが、
modeにどうやって置き換えればいいんだ・・・

38 名前:デフォルトの名無しさん [sage] 投稿日:03/12/22 23:16
>>37

キャストしる。

mode = (int)b[0];

もしくは記録したのが4バイトなら

mode = ((int)b[0] << 24) | ((int)b[1] << 16) | ((int)b[2] << 8) | (int)b[3];

こんな感じ。

39 名前:デフォルトの名無しさん [sage] 投稿日:03/12/22 23:18
>>37
mode = (((b[0] & 0xff) << 24) | ((b[1] & 0xff) << 16) | ((b[3] & 0xff) << 8) | (b[4] & 0xff));

とかでよかったっけ?

40 名前:38 [sage] 投稿日:03/12/22 23:19
間違い。

((int)b[0] << 24) & ((int)b[1] << 16) & ((int)b[2] << 8) & (int)b[3];

41 名前:37 [] 投稿日:03/12/22 23:31
>>38
サンクス!

>>37に書き忘れたんだが、
書き込むときの int mode→byte[] bにする場合は
どうすれでいいのでしょぅか?

42 名前:38 [sage] 投稿日:03/12/23 00:00
>>41

byte[0] = (byte)((mode >>> 24) & 0xFF);
byte[1] = (byte)((mode >>> 16) & 0xFF);
byte[2] = (byte)((mode >>> 8) & 0xFF);
byte[3] = (byte)(mode & 0xFF);

43 名前:デフォルトの名無しさん [sage] 投稿日:03/12/23 00:06
>>42
byte の b は何処へいった?(w

int mode = 0;
だから1バイトじゃないのか?

44 名前:デフォルトの名無しさん [sage] 投稿日:03/12/23 00:12
>>43
そーゆーことをやってると、読み込むときに苦労する。

45 名前:デフォルトの名無しさん [sage] 投稿日:03/12/23 00:34
昔のベーシックのPAINT命令のような
塗りつぶしを実装したいのだが
どのような方法が考えられますか?

俺が考えてみたのは
画面上の座標をチェックしながら
境界線となる色が見つかったら
その範囲内に直線を引いていく
というようなものだったのだが、画面上の
ドットを拾う方法がわからず・・・・

もう一つ考えたのは、配列(描画する大きさ分)
上に画面上のドットの色を保存しておいて
配列をチェックしつつ線を引いていく(塗りつぶす)
この方法で出来そうなのだが、そうするとLINE命令のような描画を
再現することができない(こともないとは思うが)

どんなカンジの処理をしたいかというと、
20年位前のAVGのような画面描画処理です。
サラトマ、スターアーサー、はーりぃふぉっくすみたいな。
線がちゃかちゃか描画されて、そのごとろい塗りつぶしが行われる。
そんなかんじの。


46 名前:デフォルトの名無しさん [sage] 投稿日:03/12/23 01:44
>>45 こことか参考にしる
http://lee.phys.titech.ac.jp/~yasutake/PaintArea.html

47 名前:デフォルトの名無しさん [sage] 投稿日:03/12/23 01:56
>>46
う〜ん・・・
そこは、すでに昨日みたです。
塗りつぶしの方法については、まあ
いろんなアルゴリズムあるし、
高速である必要はないです。今回。
あえて、遅い方がらしさがでるようなきがするので・・・・
ぐぐってはみたんです、その上での質問です。

おそらく、わざとそんな昔のしょぼい描画を再現するなんて
需要ないだろうし、紹介している人もいないとは思います。
ですので、MIDPに詳しい方に方法として、どんなものが考えられるか
質問してみたのです。
ちなみに、MIDPのアンオフィシャルのAPIリファレンスのサイトと
MIDP解説本を参考に自分なりに考えてはみました。
JAVA SEでは、画面上のドットを取得するメソッドがあるみたいですが
MIDPのみでそのようなメソッドはないようですし、
見た目だけでも似た感じにできれば。。。と思っています。
長文の上、文章がへたですいません。
ならびに45さんありがとうございます。


48 名前:45 [sage] 投稿日:03/12/23 01:57
ごめんなさい。
お礼は46さんですた・・・。


49 名前:37 [] 投稿日:03/12/23 10:52
>>42
書き込みの部分だが、

RecordStore rs=RecordStore.openRecordStore("test",true);
/*
ここにint modeの変換する処理・・・@
*/
if (rs.getNumRecords()==0) {
rs.addRecord(b,0,b.length);
} else {
rs.setRecord(1,b,0,b.length);
}
rs.closeRecordStore();
と書いてあるだが、
@に>>42をいれても文ではありません。とエラー。
うーん・・・ヨクワカラソ・・・

50 名前:デフォルトの名無しさん [sage] 投稿日:03/12/23 11:22
>>49
byte[0] を b[0]に…

43 名前:デフォルトの名無しさん[sage] 投稿日:03/12/23 00:06
>>42
byte の b は何処へいった?(w

51 名前:デフォルトの名無しさん [sage] 投稿日:03/12/23 11:28
>>47
遅くしたいなら、ゆっくり描画すればいいのでは?
アルゴリズムはそこに出てるような感じでしょ
(スキャンラインシードフィルね)

52 名前:デフォルトの名無しさん [sage] 投稿日:03/12/23 14:51
>>35
一度削除したものを復活させるソフトがあるからそっちを試してみたらいいと思われ。

ttp://www.vector.co.jp/soft/win95/util/se192983.html

53 名前:デフォルトの名無しさん [sage] 投稿日:03/12/23 23:31
そのうち「携帯パソコン上でIP電話」ってのが主流になるよ 

54 名前:デフォルトの名無しさん [sage] 投稿日:03/12/24 01:54
>>47
MIDP1.0では、Imageの pixelを取り出すことはできない。
そのうち出てくる MIDP2.0なら出来たと思う。

それから、EZアプリとVアプリのAPIでは、
Imageのpixel取れたと思うので、確認してみれば?


55 名前:デフォルトの名無しさん [sage] 投稿日:03/12/24 02:02
>>49
シンタックスエラーになってあたりまえ。
もう一度Javaの基礎を勉強しなおした方が良いかと。

50さんの指摘以外に、">>>" とかもエラー。
そんなのJavaにはありません。


56 名前:37 [] 投稿日:03/12/24 07:33
>>55
というか大体自分なりに書き換えて
成功したのでOKという方向で。

57 名前:デフォルトの名無しさん [sage] 投稿日:03/12/24 08:03
>>55
「>>>」を知らんのか?
それは、もう一度Javaの基礎を勉強し直した方がよいかと。




・・まぁオレも使わんけど。


58 名前:デフォルトの名無しさん [sage] 投稿日:03/12/24 11:17
">>>"を知らんやつはJava初心者。

59 名前:デフォルトの名無しさん [sage] 投稿日:03/12/24 17:42
初心者です。ケテスタください

60 名前:デフォルトの名無しさん [sage] 投稿日:03/12/24 19:40
たすてけ?

61 名前:デフォルトの名無しさん [] 投稿日:03/12/24 21:00
Vアプリの説明欄って書き込めないの?
本見たけど書いてなかったので・・・

62 名前:デフォルトの名無しさん [sage] 投稿日:03/12/24 21:29
MIDlet-Descriptionのことかね?

UTF-8で書けば説明の項目に出るよ

63 名前:デフォルトの名無しさん [sage] 投稿日:03/12/24 21:32
>>61
何の本を読んだのか知らんが。
説明欄というのが、端末のプロパティから参照できるやつのことなら、
MIDlet-Description

64 名前:デフォルトの名無しさん [] 投稿日:03/12/24 23:31
>>62.63
レスサンクス

ちなみに
「携帯JAVAアプリケーション開発ガイド」
という本。

65 名前:デフォルトの名無しさん [sage] 投稿日:03/12/25 04:09
携帯アプリ板
http://news6.2ch.net/appli/

66 名前:デフォルトの名無しさん [] 投稿日:03/12/28 03:21
Vアプリで着信を受けてバイブレータ動かすことってできないの?
setDeviceActiveだとドキュメントにあると折りエラー...。

V601SHでメール作成画面等にあるときに着信音が鳴らない
(バイブレータも動かない)のをVアプリで補おうと思ったんだが...。

67 名前:66 [sage] 投稿日:03/12/28 03:23
ぁ、「着信」ってのはメール着信のことです。


68 名前:デフォルトの名無しさん [sage] 投稿日:03/12/28 07:38
>>66
メール作成画面時は常駐アプリが動いていなくて(一時停止)
そもそもイベントを取得できないと思うが。

69 名前:デフォルトの名無しさん [sage] 投稿日:03/12/28 11:16
>>66
設定で変更できるんじゃない?

70 名前:66 [sage] 投稿日:03/12/28 18:56
>>68
P5型でのみ使える MIDlet-Resident: S でいけるんじゃないかと
思っているんですが。ダメかしら。

>>69
それができないんですよ。取説にも書いていませんし、一応携帯板で
質問してみたんですが、やっぱりできなって話です。


71 名前:デフォルトの名無しさん [sage] 投稿日:03/12/28 19:08
>>70
継続起動待受アプリってやつだね。
こいつは、端末が折り畳まれていても実行され続ける、というだけのはず。
つまり、折り畳まれていても実行されている以外は、普通に実行されている状態と何ら変わらないのでは。

72 名前:66 [sage] 投稿日:03/12/28 20:26
>>71
そーゆーことですか。ありがとうございます。
となると、>>68 さんの言うように、なんにしろ目的は達成できそうに
ありませんね。

調べないでこの端末を買ったのが悪いんですが、ちと困ったな。

73 名前:デフォルトの名無しさん [] 投稿日:03/12/29 17:08
P5型のアプリでカメラの起動方法がいまいち分からないのですが
どうやればいいんでしょぅか・・・

74 名前:デフォルトの名無しさん [sage] 投稿日:03/12/29 17:58
>>73
・CameraConnection camera = Connector.open("camera:");
・いろいろ設定メソッドを呼び出す
・camera.capture();キャプチャする


75 名前:73 [] 投稿日:03/12/29 18:37
レスサンクス。
あと、P5用のパッケージがコンパイルで弾かれるんだけど
どうすればいいんだろう。。
いままで↓
javac -bootclasspath c:\J-PHONE-SDK\stubclasses.zip *.java -target 1.1
でコンパイルしてたけど
c:\J-PHONE-SDK\stubclasses.zipを使わなければいいだけ?

76 名前:デフォルトの名無しさん [sage] 投稿日:03/12/29 18:57
>>75
P5用のstubclasses.zipを使ってる?

77 名前:73 [] 投稿日:03/12/29 19:57
>>76
サンクス。
P4のままでした(汗

ってかカメラの起動〜保存までの書き方が分からない・・・。
誰かサンプルとか教えてください。。。

78 名前:デフォルトの名無しさん [] 投稿日:04/01/01 19:40
httpで収得した文字列が
info= 0,1,2,3,4,5,6,7,8
だとして、
, で区切ったものを別々の変数?に分けるにはどうすれば・・・
例えば
a[2] → 2
a[3] → 3
のような形に・・。

79 名前:デフォルトの名無しさん [sage] 投稿日:04/01/03 01:48
海外掲示板用オフラインリーダーを作るスレ
http://pc2.2ch.net/test/read.cgi/tech/1072883528/

海外でよく使われていうる掲示板スクリプト
専用のオフラインリーダー作って下さい。

必要な条件はID、PASSを管理できること、
OpenJaneみたいな三面型の見た目。
簡単にローカライズできるように言語ファイルを採用

80 名前:デフォルトの名無しさん [sage] 投稿日:04/01/03 08:59
まず言い出しっぺが頑張ってください。

81 名前:デフォルトの名無しさん [] 投稿日:04/01/03 12:56
info= 0,1,2,3,4,5,6,7,8
をsplitを使って , で分割するには
どのように書けばいいんでしょぅか?

82 名前:38 [sage] 投稿日:04/01/03 16:24
>>81

@ 現在位置を保持
A String#indexOf()で","の位置を取得
B Aで取得したところまでをString#substring()で抜き出す。
C Aで取得した位置に移動
D @に戻る

を文字列の終わりまで繰り返す。


83 名前:82 [sage] 投稿日:04/01/03 16:24
名前に辺なのはいっちまった。

84 名前:デフォルトの名無しさん [sage] 投稿日:04/01/03 18:38
>>81
vbsですが、
info = "0,1,2,3,4,5,6,7,8"
result = Split(info,",")

これで result(LBound(result))〜result(UBound(result))に値が入ります。

85 名前:81 [] 投稿日:04/01/03 20:00
>>82
レスサンクス。
indexOF()で、もし , が無かったとき(-1)
にそこで処理を停止するに、
if文を使おうとしたのだが、
演算子 != は int,java.lang.String に適用できません。
と言われました。。

じゃあ何にすれば良いんだよと・・・・・

86 名前:81 [] 投稿日:04/01/03 20:06
ちなみにVodafone用のアプリです。。

87 名前:デフォルトの名無しさん [sage] 投稿日:04/01/03 20:58
>>85
コード片書いてちょ

88 名前:デフォルトの名無しさん [sage] 投稿日:04/01/03 21:46
>>85
コードは正直だ、おまいが悪い。
エラーになる部分のコード晒してみ。

89 名前:81 [] 投稿日:04/01/03 22:36
private String info1="未収得";

public void commandAction(Command c,Displayable s) {
if (c==soft1) {
info1=readText(url1);
int i0 = info1.indexOf(",");
if(i0 != "-1"){ // ここの部分でエラー
W01 = info1.substring(0,i0);
    }
repaint();
}
public void paint(Graphics g) {
g.drawString(W01,0,80,g.LEFT|g.BOTTOM);
}

かなり省略してますが。。
readText(url1);は 0,19,41,0.02,0.07,0.10 という文字列が返ってきます。
それを , で分割してW01,W02,W03・・という感じで入れたいのです・・。

90 名前:デフォルトの名無しさん [sage] 投稿日:04/01/03 22:37
どうして "-1" なんて書くのか、まったく想像もつかない。


91 名前:デフォルトの名無しさん [sage] 投稿日:04/01/03 22:46
>>89
うはぁ・・・・脱帽

92 名前:81 [sage] 投稿日:04/01/03 22:58
あっ。
perlと混ざって種。
スマソ。。

93 名前:デフォルトの名無しさん [sage] 投稿日:04/01/03 23:06
>if(i0 != "-1"){ // ここの部分でエラー

何で""が付いてんの?

> readText(url1);は 0,19,41,0.02,0.07,0.10 という文字列が返ってきます。

バイナリデータで返すように作ったら?
固定小数点でいいならゲタはかせて整数にすればいいし

94 名前:デフォルトの名無しさん [sage] 投稿日:04/01/03 23:22
Perlでも"-1"なんてことしないよ・・・

95 名前:デフォルトの名無しさん [sage] 投稿日:04/01/03 23:38
>>81 はアホでFA

96 名前:デフォルトの名無しさん [sage] 投稿日:04/01/07 20:16
うひょ

97 名前:デフォルトの名無しさん [] 投稿日:04/01/10 09:46
Vアプリで ResourceOperatorクラス のjavadocが見たいのですが
どこに乗っているかご存知の方いませんか?
Javadoc(P5)には無いみたい

ちなみにclassの中を直接見ると
com/j_phone/media/ResourceOperatorになってました


98 名前: [] 投稿日:04/01/10 09:51
すまん、Javadoc(C4)にあったよ(恥
P5から使える機能化と思ってた

99 名前:デフォルトの名無しさん [sage] 投稿日:04/01/10 11:34
補足しておくとV601SHではResourceOperatorがサポートされていないので
P5用のStorageConnection等の代替クラスを利用するノダ。

100 名前: [] 投稿日:04/01/10 13:08
>>99
StorageConnectionすげー
"フォルダ名/"にアクセスできるじゃん
でもP5型JSCL 1.2しか使えないんじゃなぁ

ちと勉強してみます

101 名前:デフォルトの名無しさん [] 投稿日:04/01/10 17:46
Vアプリで配列をレコードストアに保存して、それを読みこめるようにしたいのですが、どうすればよいのでしょうか?

例として
int[] data;
data= new int[10];
data[0]=0;
.
.
.
data[9]=9;

みたいなのをレコードストアの1〜10までに保存したいわけですが・・・

どなたかご存知でしたら御教え下さい

102 名前:デフォルトの名無しさん [sage] 投稿日:04/01/10 19:30
こーゆー感じに書いていく。
間違ってたらスマソ。でも実際に使ってました。

int[] data = new int[5];
byte[] b;
RecordStore rs; // openRecordStoreを行う

for (i=0;i<5;i++) {
b=new byte[4];
b[0] = (byte)(data[i] & 255);
// 255迄しか数値を扱わない場合は以下3行削除
b[1] = (byte)((data[i]>>>8) & 255); // 65535
b[2] = (byte)((data[i]>>>16) & 255); // 16777215
b[3] = (byte)((data[i]>>>24) & 255); // 4294967295
rs.setRecord(b,0,b.length);
}


103 名前:デフォルトの名無しさん [sage] 投稿日:04/01/11 18:29
アプリのソースコードを公開しているサイトってどこかない?

104 名前:デフォルトの名無しさん [sage] 投稿日:04/01/12 02:29
ぐぐれ

105 名前:デフォルトの名無しさん [sage] 投稿日:04/01/12 06:03
「ぐぐれ」=「知りません」w

106 名前:デフォルトの名無しさん [sage] 投稿日:04/01/12 12:56
>>105
バカw

>>103
国内でもいくつかあるが、MIDPをキーにして探してみろ。
海外でソース置いてるとことか大量に出てくるぞ。


107 名前:デフォルトの名無しさん [sage] 投稿日:04/01/12 12:57
String t01="000032";
を 0.32 に、
String t02="001653";
を 16.53 にして画面に表示させるには
どうやればいいの?

108 名前:デフォルトの名無しさん [save] 投稿日:04/01/12 22:23
>>107
Stringとintに変換。
100で割る。
求めた2つのintを表示する。

109 名前:デフォルトの名無しさん [sage] 投稿日:04/01/13 00:14
String t01="000032";

int in1 = Integer.parseInt( t01 );
int ans1 = in1 / 100;

g.drawString(ans1,0,120,g.LEFT|g.BOTTOM);

ここまではやってみたが、
javax.microedition.lcdui.Graphics の drawString(java.lang.String,int,int,int) は (int,int,int,int) に適用できません。

細かいところを教えてください。。
お願いします。

110 名前:デフォルトの名無しさん [sage] 投稿日:04/01/13 01:09
> g.drawString(ans1,0,120,g.LEFT|g.BOTTOM);

g.drawString(""+ans1,0,120,g.LEFT|g.BOTTOM);
コンパイラが変換してくれます

111 名前:デフォルトの名無しさん [sage] 投稿日:04/01/13 18:47
やってみたらコンパイルは出来たのですが、
数値が 0 になるのですが・・・。

112 名前:デフォルトの名無しさん [sage] 投稿日:04/01/13 19:10
チミは割り算も出来ないのかね

113 名前:デフォルトの名無しさん [sage] 投稿日:04/01/13 19:18
MIDPは整数の世界なので 32/100 = 0
後は・・・・・分かるな?

114 名前:デフォルトの名無しさん [sage] 投稿日:04/01/13 23:55
小数点の位置が固定なら後ろから2個目と3個目の数値の間に点を挿入すればいいのでは?

115 名前:デフォルトの名無しさん [] 投稿日:04/01/14 00:20
public void deleteRecord(int recordId)
「レコードIDに対応するレコードをレコードストアから削除します。 そのレコードのためのレコードIDは再使用されません。」
すげー辛い仕様だよ
てっきり削除したら自動的に前詰するか、追加時に空いているIDを探してくれるモンかと思ったのに。。。。

「ハイスコアは最大100個まで」みたいなアプリを作るときは、
普通はどうするモン?


116 名前:デフォルトの名無しさん [sage] 投稿日:04/01/14 00:26
>>115
1レコードに全部ぶち込むとか。

117 名前: [] 投稿日:04/01/14 00:42
それいい考えだ!!

118 名前:デフォルトの名無しさん [sage] 投稿日:04/01/14 04:08
>>115
オレは、基本的に上書きしかしないようにしている。
初回起動時にてきとーに100個分埋めて、あとはスコア更新時に常時上書きって言う具合。

>>99
マジすか?
基本的に下位互換は完璧だと思ってたんだけど、甘かったか。

119 名前:デフォルトの名無しさん [] 投稿日:04/01/14 22:00
Vodafone用に、簡単なシーケンサーアプリを作ろうと思ってます
SMAFファイル等を経由しないで、直接内部音源鳴らせます?
音・長さ・タイミングなど指定して。
あと音が重ねられたらいいな。
こんなの可能ですか?

120 名前:デフォルトの名無しさん [sage] 投稿日:04/01/14 22:06
>>119
できません。。。
やるとしたら、SMAF Phraseでいろんな音程・長さのデータを持っておくとか、内部で作成するとか(できるかどうかは知らんけど)

121 名前:デフォルトの名無しさん [sage] 投稿日:04/01/14 22:08
>>119
できるよ。
http://www.itmedia.co.jp/mobile/0205/20/n_jjava.html

122 名前:デフォルトの名無しさん [] 投稿日:04/01/14 22:25
>>117
この方法だと、最初から最大容量を使っちゃうのがちょっとなぁ
いろいろ考えた結果、毎回ソートして順番を書き換える1レコード式で
ちょっと試してみます
サンクス

123 名前:デフォルトの名無しさん [] 投稿日:04/01/14 22:30
えー、すげー基本のような気がするのですが
各種javaDocを見渡してみたのですが発見できなかったので
質問です。
jarに同梱してあるoutputの下に置いたデータファイルを
読みたいのですが、どうすればいいのでしょう?
Connectorをどうにかして使うものでしょうか?
Imageみたいな、FILEとか無いんですかねー

124 名前:デフォルトの名無しさん [sage] 投稿日:04/01/14 23:31
>>123
Class#getResourceAsStream() を使う

具体的には、
InputStream in = getClass().getResourceAsStream(<File Name>);
って感じ。

125 名前:デフォルトの名無しさん [sage] 投稿日:04/01/14 23:47
>>121
> >>119
> できるよ。
> http://www.itmedia.co.jp/mobile/0205/20/n_jjava.html

ウザイ
嘘はヤメレ

126 名前:デフォルトの名無しさん [] 投稿日:04/01/14 23:54
>>125
やっぱできないよね!?


127 名前:デフォルトの名無しさん [sage] 投稿日:04/01/15 02:21
>>126
基本的にできないよ。

ただ次の2点はできる

>> 音・長さ・タイミングなど指定して。
タイミング、長さは指定可能

>> あと音が重ねられたらいいな。
これは可能

128 名前:119 [] 投稿日:04/01/15 11:11
>>127
音は指定できないの?

SmdPlayerのsetDataメソッドに、SMDデータのバイトデータ渡してあげればできるかな?
って思ったんだけど・・

129 名前:デフォルトの名無しさん [] 投稿日:04/01/15 14:30
レコードストアに
レコードストアID1〜100まで保存しようとするとエミュレータがエラーを返すのですが・・・

レコードIDって1〜10までが限界なんですか?
ちなみに、RMSの最大値は30KBまでとってあります

130 名前:129 [] 投稿日:04/01/15 14:43
訂正
レコードストアIDは複数作成できてるっぽいのですが、読みこみ時にエラーがでます
java.lang.ArrayIndexOutOfBoundsException
at KtaiCanvas.commandAction(+212)
at javax.microedition.lcdui.CommandMenuList.commandAction(+90)
at javax.microedition.lcdui.Displayable.commandAction(+18)
at javax.microedition.lcdui.List.dispatchUi(+96)
at javax.microedition.lcdui.List.dispatch(+29)
at javax.microedition.lcdui.UiEventDispatcher.dispatchUi(+127)
at com.jblend.io.j2me.events.EventDispatcher$EventWorkerThread.run(+387)
Application EMERGENCY termination. (-1)

131 名前:129・130 [] 投稿日:04/01/15 14:45
↑みたいな
で、読みこみ部分のソースは
if (c==soft2) { //データの読み込み
try {
//RecordStore
RS = RecordStore.openRecordStore("gra",true );
for(int i=0;i<100;i++){
i++;
byte[] rec = RS.getRecord(i);
i--;
hiScore[i] = rec[i];
}
//Integer.parseInt(new String(data));
RS.closeRecordStore();

} catch (RecordStoreException re ) {
}
wk= "read";
}
ですが

132 名前:デフォルトの名無しさん [sage] 投稿日:04/01/15 15:21
RecordStoreとは関係ない予感。

133 名前:129・130 [] 投稿日:04/01/15 15:51
>>132 そうなんですか?
if (c==soft2) { //データの読み込み
try {
RS = RecordStore.openRecordStore("gra",true );
for(int i=0;i<100;i++){
i++;
byte[] rec = RS.getRecord(i);
i--;
data[i] = rec[i];
}
RS.closeRecordStore();

} catch (RecordStoreException re ) {
}
wk= "read";
}
とりあえず修正したら100までは読みこめるようになりました。
希望は1万まで保存&読みこみさせたいのですが・・・
recordstoreじゃないとなるとcommandactionあたりが悪いんでしょうか?

134 名前:デフォルトの名無しさん [sage] 投稿日:04/01/15 15:59
>>133
} catch (RecordStoreException re ) {
//この部分の意味わかってるか?
}


135 名前:129・130 [] 投稿日:04/01/15 17:23
え・・・と
例外が生成された理由に関するメッセージを指定しないでインスタンスを構築します。
ってことなので・・・

エラー時の原因を表示しない・・・ってことでしょうか?

136 名前:129・130 [sage] 投稿日:04/01/16 01:42
解決しました
板汚し申し訳ありませんでした

137 名前:119 [] 投稿日:04/01/16 11:47
できたわ。

138 名前:デフォルトの名無しさん [sage] 投稿日:04/01/16 12:00
>>137
やっぱ、演奏データの内部生成?

139 名前:デフォルトの名無しさん [sage] 投稿日:04/01/16 12:00
>>137
うpよろ

140 名前:127 [sage] 投稿日:04/01/17 05:05
>>119
それって>>120の内部生成方法でやったんだよね?
ソースみたいYO!


141 名前:デフォルトの名無しさん [sage] 投稿日:04/01/17 06:52
SMAFDataを内部で動的に作るんなら、結構がんばってるよな。オレも見てみたい。
StorageConnectionと組み合わせて読み込みと保存を追加すれば、結構いけるな。


142 名前:デフォルトの名無しさん [] 投稿日:04/01/17 16:29
環境:j2me_wireless_toolkit_2.0_01
vodaphone拡張apiを使いたい。

c:\WTK20\apps\(アプリの名前)\lib\に
stubclasses.zipを置く

build

ERROR: native methods should not appear
Error preverifying class java.lang.Class
Build failed
なぜですか?ユーザーガイドは嘘つきですか?

143 名前:デフォルトの名無しさん [sage] 投稿日:04/01/17 16:50
>>142
Vodafoneの開発ガイドを読むべし。


144 名前:デフォルトの名無しさん [] 投稿日:04/01/17 17:55
読んでみたけど・・・要するにwirelesstoolkitではできないのでコマンドラインからやってくれってこと?

145 名前:デフォルトの名無しさん [sage] 投稿日:04/01/17 21:52
getWidth();とかで画面サイズを別の関数、例えばint i;
などに代入することは可能でしょうか?
可能でしたら、方法を教えて頂けるとうれしいです

146 名前:デフォルトの名無しさん [] 投稿日:04/01/17 22:43
ソケット通信ができる機種ってありますか?

147 名前:142 [] 投稿日:04/01/17 23:10
midpapi.zipに無理やりstubclasses.zipの中身を追加圧縮して自力解決。なんとも気持ち悪いが。

>>145
言ってる意味がよくわからんけど、int i = getWidth();ってこと?


148 名前:119 [] 投稿日:04/01/17 23:20
smdPlayerの引数にbyteでSMDデータを渡してあげたら音がでたよ。

>>141
渡したデータはSMAFDataじゃなくて、SMDData。
SMDエディタで適当にファイルを作って
バイナリエディタで開いてみて、データを解析してみた。

SMDだと音が悪いからSMAFDataにしたいんだけど、ちょっとできないかも。

誰か解析して!



149 名前:デフォルトの名無しさん [] 投稿日:04/01/18 00:14
>>147
やってみた。圧縮は成功だけど、エミュレータではerrorになった。
java.lang.ClassNotFoundException

150 名前:デフォルトの名無しさん [sage] 投稿日:04/01/18 00:57
>>142
なぜ、MIDP2.0 の Wireless Toolkit を使ってるの?

>>146
海外のJava端末では対応してる機種はある。
日本のキャリアは実装してないので使えない。

>>147
そりゃ、そうだろ。

151 名前:150 [sage] 投稿日:04/01/18 01:02
間違えた。
147 じゃなくて、149


152 名前:142 [] 投稿日:04/01/18 01:08
>>150
MIDP1.0のも持ってますが、何となく。いかんのでしょうか?
そして解決したと思っていたが、buildしてエミュで動かすと
No such method getWidth.()I
などという謎のエラーで落ちる破目に・・ショボーン・・。
今いろいろ調べて追加圧縮が原因ででてるエラーみたい。八方ふさがりー。

153 名前:145 [sage] 投稿日:04/01/18 18:13
>> 147
コンパイルでエラーでちゃうんですよ。
getWidth()がintとサイズ違うんだかなんなんだかわかりませんけども・・・

画面サイズで表示サイズ指定したかったんですが、できないのかなぁ・・・

154 名前:150 [sage] 投稿日:04/01/18 22:47
>>152
バージョン違ったらダメだろ。普通。

エミュと言ってるのは、WirelessToolkitのエミュのことか?
であれば、ボダの拡張APIのクラスファイルがないから動かないのは当然。
ボダ用のエミュレータなら、MIDP2.0のAPI使ってないか、確認しろ。

>>153
せめて、コンパイルエラーの文言ぐらい書いてくれ。

155 名前:デフォルトの名無しさん [sage] 投稿日:04/01/19 00:09
昨日からこっそり開発を始めたMIDP初心者です。

Vアプリのエミュレーターを使って動作確認を
しているのですが、このP5型では無いエミュレーターでも
100k~256kのjarファイルを動作させることはできるのでしょうか?

おしえてエロイ人

156 名前:デフォルトの名無しさん [] 投稿日:04/01/19 00:20
>>154
JSCL1.2.1のAPIを使っていなければ
サイズのみ100〜200kのjarは可能
256kでは無いので注意
残りはレコードストアね

157 名前:デフォルトの名無しさん [sage] 投稿日:04/01/19 00:33
>>156
即レスありがとうです!

動作確認は取れるということですね。
jarが200kまでとは・・。もう一回仕様書読んできます。

ほんとにありがとうでした(^。^

158 名前:142 [] 投稿日:04/01/19 00:37
>>150,156
apiは1.0の範囲で収まってると自信をもって言えます。
でも念のため今はWTK104でやってます。でも状況は変わってないです。
ちなみに圧縮方法変えてみたりしてみましたが。やはりNo such method getWidth.()I が。
あ、ちなみにエミュはvodafoneのj-sky application emulatorで、
WTK付属のエミュでやってみると
ALERT: Unable to load class com/jblend/media/MediaPlayerListener
です。ま、こっちは当然ですが。

vodafoneの拡張API使ったアプリを作っていらっしゃる皆々様はコンパイルのときいちいちコマンドプロンプト使ってるんですか?
まさか・・・ね。

159 名前:142 [] 投稿日:04/01/19 00:55
…ヤッタ!

midpapiのjavax/microeditionにstubclassesのjavax/microeditionを
上書きして圧縮したらできました。
結局プログラムとは試行錯誤なんだなぁ、と。(違)
>>150,>>156両氏、レス感謝です。


160 名前:デフォルトの名無しさん [] 投稿日:04/01/19 13:24
>>157
コマンドプロンプトだけど何か?

つーか、普段使っているSolarisもコマンドプロンプトみたいなもんだから
違和感ないんだよね


161 名前:デフォルトの名無しさん [sage] 投稿日:04/01/20 22:00
Vで文字や絵を点滅させるにはどうすればいいんですか?

162 名前:デフォルトの名無しさん [sage] 投稿日:04/01/20 23:06
>>161
描く→消す→描く→消すを繰り返す。

163 名前:デフォルトの名無しさん [] 投稿日:04/01/22 08:32
JBuilder パーソナルでEZアプリを作ろうとがんばっているのですが、エミュレータで以下のようなエラーが出てしまいます。プログラム内容は単にHelloWorldと表示するだけのものです。
Loading JAD:
cannot run: helloworld
java.lang.ClassNotFoundException
Exception.........: e5f0560 'java/lang/ClassNotFoundException'
Application EMERGENCY termination. (-1)

164 名前:163 [] 投稿日:04/01/22 15:27
環境はJ2MEWTK+JDK1.3.1_10 エミュはEZPLUS開発ツールのやつです。助けて神サマー

165 名前:デフォルトの名無しさん [sage] 投稿日:04/01/22 15:44
>>163
「ClassNotFoundException」でググれば即解決。

166 名前:163 [] 投稿日:04/01/22 17:30
>>165
ありがとうございます。早速調べましたが私初心者なものでいまいちよく分かりません(**)
差し支えなければどういう意味か教えてはいただけませんか?

167 名前:デフォルトの名無しさん [sage] 投稿日:04/01/22 17:59
>>166
「クラスが見つからない例外」
・・・これで意味がわからなければ、Javaを基礎から勉強してみた方がいいかも。

168 名前:デフォルトの名無しさん [] 投稿日:04/01/23 01:21
Vアプリの待ち受けで、メールの着信通知の見分け方って
どうすればよい?
普通に待ち受けアプリを作ってみたら、着信通知でもメールが
来たことになってしまった
エミュレータにもそれらしいイベントないし。。。。

普通のSKYメールと着信通知は、何を見分ければよいか
教えてプリーズ!>JAVAのエロイ人


169 名前:デフォルトの名無しさん [sage] 投稿日:04/01/23 01:38
>>168
MailListener

170 名前:デフォルトの名無しさん [sage] 投稿日:04/01/23 02:19
>>163
>単にHelloWorldと表示する
の前に、HellowWorldとログ出力するだけのでも作ってみ。
それから、Canvasに文字や図を書くのをやってみよう。

171 名前:デフォルトの名無しさん [sage] 投稿日:04/01/23 03:49
レコードストアにJARを保存して、JARに含まれるファイルを個別に取り出すことってできるんですか?
そのあたりの仕様が載っているサイトや本があれば教えていただきたいのですが・・・

172 名前:デフォルトの名無しさん [] 投稿日:04/01/23 08:44
>>168
VアプリのP5型のJavaDocを見たけど
MailListenerのトコには、それらしい記述が
無いのですが?
もうちっとヒントをお願いします

173 名前:163 [] 投稿日:04/01/23 09:47
>170
ありがとうございます。少しずつ調べながらがんばってみます!

174 名前:デフォルトの名無しさん [sage] 投稿日:04/01/23 10:20
>>171
JARに含まれるファイルをとりだすことは可能。
しかし、レコードストアをJARに保存するできない。
というか、JARは書き換えられないのでは?

175 名前:デフォルトの名無しさん [sage] 投稿日:04/01/23 13:33
>>172
>このインタフェースを実装したリスナを、DeviceControlのsetMailListener()メソッドを呼び出して
>登録してください。 メール着信に関するイベントは、MailListenerインタフェースのreceived()
>メソッドに通知されます。
と思いっきり書いてあるのだが。

>>171
Vアプリなら、Connector.open("jar://Filename/Resourcename");
とかでRecordStoreに保存したJARの中身にアクセスできるとドキュメントに書いてあった。
ezは知らない。

>>174
レコードストアをJARに保存するのではなくて、JARをレコードストアに保存したいのだと思われ。


176 名前:171 [] 投稿日:04/01/23 16:02
>>175
>Vアプリなら、Connector.open("jar://Filename/Resourcename");
>とかでRecordStoreに保存したJARの中身にアクセスできるとドキュメントに書いてあった。
ありがとうございます!!

ところで、そのドキュメントって具体的にはなんと言うファイルでしょうか?
VodafoneのPDF資料を見ていたんですが、それらしい部分を見つけられなくて・・・
詳しい制限等知りたいので、お手数ですが教えていただければ助かります。

177 名前:174 [sage] 投稿日:04/01/23 23:20
げ。日本語が読めてなかった。

>> 175
"jar://" スキームは、単にJAR内のファイルを読むだけでなかったけ?

178 名前:デフォルトの名無しさん [sage] 投稿日:04/01/23 23:35
Vアプリ開発ガイド概要編の4.6 JAR の項を読む限りではできそうに思えるんだけどなあ。
今月いっぱいは試そうにも試せないから、質問者の人に試してもらうって事で。

179 名前:デフォルトの名無しさん [sage] 投稿日:04/01/25 00:00
RecordStoreに保存したjar内のファイルへのアクセスはこんな感じで出来るかと

byte buf[] = new byte[65536];
InputConnection c = (InputConnection)Connector.open("jar://"+レコードストア名+"/"+ファイル名 , Connector.READ);
InputStream is = c.openInputStream();
is.read(buf);
is.close();
c.close();


180 名前:デフォルトの名無しさん [] 投稿日:04/01/25 15:22
キーイベントでちょっとお聞きしたいのですが、
現在

/** キー押下イベントが発生した時に呼ばれるメソッド */
protected synchronized void keyPressed(int keyCode) {
if(gameState != GAME_PLAYING ||
(gameState == GAME_PLAYING && isPaused)) {
//ゲーム中ではない、又はゲーム中で一時停止中の場合はreturn
return;}
int gameCode = getGameAction(keyCode);
switch(gameCode) {
case LEFT://左キー押下時
for(int i = 0;i < 8;i++){
doLeft();
try{
Thread.sleep(50);
}catch(InterruptedException e){}
}
       以下上下右が入ります。
              }
}
/** キー押下状態の時に繰り返し呼ばれるメソッド */
protected void keyRepeated(int keyCode) {
keyPressed(keyCode);
}
という様に拾っているのですが(do〜は移動描画をしています)押しっぱなし状態だと
一歩動いてその後押してた方向に動きっぱなしになってしまいます。
スレッドの扱い方が悪いのでしょうか?

ご教授おねがいしまつ。



181 名前:デフォルトの名無しさん [sage] 投稿日:04/01/25 18:47
>>180
キー入力がキューイングされてるためだと思う。
keyPressed()で重い処理をすると、どうしてもキーに遅れが発生する。

keyPressed()と描画が、N:1 にできるように作れば、大丈夫とおもう。

182 名前:wikiのVアプリスレまとめサイト”管理”人 ◆zaLvCUpNTU [sage] 投稿日:04/01/25 19:42
○○キーは押されてるの?放されてるの?テーブル を作って
押されたり放されたりしたときにフラグを上げ下げするとか?

183 名前:デフォルトの名無しさん [] 投稿日:04/01/25 21:02
>>174
resさんきゅ
しかし、MailListenerのJavaDocを読む限りは、
recieveのSMSの種類ってやつは
通常ステーション着信
緊急ステーション着信
グリーティング
スーパーメール
リレーメール
スカイメール
ウェブ着信
しか無いんだよ
実機で試してみると、skyMailの着信通知のときは
スカイメールが帰ってきてるみたい
なんか、そもそものアプローチが何か間違ってる?

184 名前:デフォルトの名無しさん [sage] 投稿日:04/01/25 21:20
>>183
そもそものアプローチというか、何がやりたいのかわからんのだけどなぁ。
一応整理しておくと、
・RingStateListener
→(ユーザーへの)着信通知(端末側での呼出音鳴動など)の開始、終了の際に呼び出される。
・MailListener
→端末にメールが着信した場合に呼び出される。
・TelephonyListener
→端末に音声着信した場合、電話が切れた場合に呼び出される。


185 名前:デフォルトの名無しさん [] 投稿日:04/01/25 21:47
>>183
済まん、用語の使い方が間違っていたよ>おれ
知りたいのは、SkyMailを送信した後の「配信確認」というやつです。

配信確認の通知もreceived()に来るみたいなんですが、
その時のSMSの種類がスカイメールみたいなので
困ってます
という話でした(^^;

186 名前:デフォルトの名無しさん [sage] 投稿日:04/01/26 05:13
>>180
MIDPじゃ、Keyイベントはすぐに処理を終わらせないといけない。
50msecを8回も待つとかやっちゃダメ。

Vなら以下のメソッドを使うのがいい
DeviceControl#getDeviceState( KEY_STATE)

それか、 >>182 のいうようにKeyPressed/KeyReleasedイベントで方向フラグを立てる・下げるをやって、
別スレッドでそのフラグを参照しながら描画するか。


>>185
実機使って実際にイベント起こして、
int detailの値を調べてみるしかないのでは。
そもそもDocに載ってないから、返ってくる値の保証もないだろうけど。
(時間や日付によって違う・機種によって違う、など)

187 名前:デフォルトの名無しさん [sage] 投稿日:04/01/26 14:54
ボーダホン用のエミュレータってどこを探せばありますか?

188 名前:デフォルトの名無しさん [sage] 投稿日:04/01/26 14:56
>>187
>>2

189 名前:デフォルトの名無しさん [] 投稿日:04/01/27 14:39
Vアプリでhttpconnectionを使うアプリを作成中です。
通信相手は自分で立てた外部アクセス可能なサーバで、
エミュレータからはうまくいったのですが実機からはダメでした。
これは、やはりサーバの設定に問題があるということなのでしょうか?
以下、仕様&ソースです。

190 名前:189 [] 投稿日:04/01/27 14:42
サーバ
・Tomcat+java servlet
実機
・SH-52


191 名前:189 [] 投稿日:04/01/27 14:43
//ソース
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import com.jblend.micro.io.*;
import java.io.*;

public class httpTest2 extends MIDlet implements CommandListener
{

private Form myForm;
private TextField tf;
private Command cm1,cm2;

private String formStr;

private final String URL = "http://smlsgrp.u-aizu.ac.jp:8080/test/servlet/saveDataServlet2";
private HttpConnection conn;
private InputStream in;

int ch;
StringBuffer result;


192 名前:189 [] 投稿日:04/01/27 14:45
public httpTest2() {
inithttpTest();
Display.getDisplay(this).setCurrent(myForm);
}

public void inithttpTest() {
formStr = "Input File Name";

myForm = new Form("HTTP TEST");
myForm.append(formStr);
tf = new TextField("File Name",null,10,TextField.ANY);
myForm.append(tf);
cm1 = new Command("送信開始", Command.SCREEN, 1);
myForm.addCommand(cm1);
cm2 = new Command("終了", Command.SCREEN, 2);
myForm.addCommand(cm2);
myForm.setCommandListener(this);
}

193 名前:189 [] 投稿日:04/01/27 14:46
public void commandAction(Command c, Displayable d){

int i;

if( c == cm1 ){

if(tf.getString()==null){
formStr = "Please Input File Name!!";
}else{
try{

i=5;
result = new StringBuffer();

conn = (HttpConnection)Connector.open(URL+"?name="+tf.getString()+"&data="+Integer.toString(i), Connector.READ, true);
conn.setRequestMethod(HttpConnection.GET);
in = conn.openInputStream();
while ((ch = in.read()) != -1) {
result.append((char)ch);
}

in.close();
conn.close();

}catch(Exception e){
}
}

}else if( c == cm2 ){

194 名前:189 [] 投稿日:04/01/27 14:47

destroyApp(false);
notifyDestroyed();

}
}

// エントリポイント
public void startApp() {
}

// アプリの一時停止
public void pauseApp() {
}

// アプリの廃棄
public void destroyApp(boolean unconditional) {
}

}

195 名前:189 [] 投稿日:04/01/27 15:52
//サーブレット
public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException{

String fileName = req.getParameter("name");
int data = Integer.valueOf(req.getParameter("data")).intValue();

try{
res.setContentType("text/plain");
DataOutputStream dout = new DataOutputStream(new FileOutputStream(dir + fileName, true));

dout.writeInt(data);

OutputStreamWriter osw =
new OutputStreamWriter(res.getOutputStream());
PrintWriter pw = new PrintWriter(osw);
pw.print("true");
pw.flush();
pw.close();

dout.close();

}catch(Exception e){
}

196 名前:189 [] 投稿日:04/01/27 15:53
あ、URLもそのまま書き込んでしまった・・・・

197 名前:デフォルトの名無しさん [sage] 投稿日:04/01/27 19:29
Vってポートの指定(:8080とか)あるとエラーになった と思う。

198 名前:デフォルトの名無しさん [] 投稿日:04/01/27 20:45
EZ端末での現象なのですが、アプリをダウンロードするページを開き、
アプリをダウンロード。※ダウンロードは成功。

その後に、ダウンロードしたぺージに戻りたいのですが、
なぜか、全然別のページに飛んでしまいます。
(EZWebのTopページだったり)

ダウンロードページは下記のような記述をしています。
<a href="device:data/dnld?url=http://www.aaa.com/appli/download.cgi&name=aaa.kjx&size=123&disposition=devkdj2&title=テスト">ダウンロード</a>

なにかわかるかたが、いらっしゃいましたらおしえてください。

199 名前:デフォルトの名無しさん [sage] 投稿日:04/01/27 21:04
そうそう。Port80しか繋がらないね。
これが意外と不便。

200 名前:189 [] 投稿日:04/01/28 21:14
>197,199
レスありがとうございました。
mod_jk2でApacheとTomcatを連携させることで解決しました。

ついでに質問なんですが、
「連続的なデータを携帯アプリからサーバに送ってそれをservletがファイルに書き込む。」
みたいな処理をさせたいのですが、この場合streamを使うとうまいこといきません。

携帯のほうで
for(){
conn = (HttpConnection)Connector.open(URL+"?file_name="+xxxxx+"&data=xxxxx", Connector.READ, true);
}
のようにしても、途中で途切れてしまいます。

何かよいお知恵はありませんでしょうか?

201 名前:デフォルトの名無しさん [sage] 投稿日:04/01/28 22:05
URLの制限があったような。

202 名前:デフォルトの名無しさん [] 投稿日:04/01/30 14:09
QVGAで画面自動拡大されたアプリって、文字サイズはどうなんの?
Vはまだいいんだがauの方で文字がでかくなりすぎるんだが・・。


203 名前:デフォルトの名無しさん [sage] 投稿日:04/01/30 14:59
文字も画像もそのまま拡大されるはず。

204 名前:デフォルトの名無しさん [sage] 投稿日:04/01/31 06:57
どなたか神の人に、激しくお伺いしたい。

VodafoneのC4アプリを書いてて、大分大きくなってきたので、噂のjargで縮めようと思ったのですが、
適用後のjarの挙動が変わってしまうのです。

スプライトの扱いが面倒だったので、そこだけ本体とは別クラスにしたのですが、
その別クラスの中にあるfor(int i=0; i<10; i++)みたいなベタなループが無限ループ化してしまって…。

こんなことって、あるもんなんでしょうか。

javac -encoding SJIS -g:none -O -target 1.1 -bootclasspath C:\V-appli_SDK_101\lib\stubclasses.zip src\*.java -d class
preverify -classpath C:\V-appli_SDK_101\lib\stubclasses.zip;.\class AppName
preverify -classpath C:\V-appli_SDK_101\lib\stubclasses.zip;.\class Main
preverify -classpath C:\V-appli_SDK_101\lib\stubclasses.zip;.\class Sprite
jar cfm bin\AppName.jar bin\MANIFEST.MF -C output .
java -jar jarg.jar -j2me-prev preverify.exe -j2me-cp C:\V-appli_SDK_101\lib\stubclasses.zip bin\AppName.jar

みたいなバッチを書いてビルドしてるんですけど…。
AppNameがMIDlet継承、Mainが実際の本体クラス、Spriteがスプライトの取り扱いクラスです。
うまくいかないのは漏れが童貞なせいですか?


ついでに、pause〜resumeの流れの中で、たまにPhraseTrackerがレジュームをサボりやがって
音が復元しないで止まってしまうのも、漏れが童貞なせいですか?

205 名前:デフォルトの名無しさん [sage] 投稿日:04/01/31 17:18
auのはPhase3.0でも、データフォルダからの画像読みだしは公式CP
じゃないとムリですか?
表示できればいいのでImageオブジェクトで十分なのですけど、
Phase2.5ではそれすらできなくて鬱。


206 名前:デフォルトの名無しさん [sage] 投稿日:04/01/31 20:25
>>204
jargのバグかもよ
バイトコードの最適化を切ってみそ

207 名前:デフォルトの名無しさん [] 投稿日:04/02/01 03:06
>>203
自分のアプリで使ってみたよ
上の行をそのままDOS窓から叩いてみた
70kが68kになった
画像が多かったから、あまりお徳では無かったよー
動作は特に支障なし
ちなみに、童貞は卒業済み

208 名前:デフォルトの名無しさん [] 投稿日:04/02/01 03:08
追伸
スプライトは使っていない(実は使ったこと無い)
forループは満載
C出身なので、クラス分けも盛大にやってる

209 名前:デフォルトの名無しさん [sage] 投稿日:04/02/01 12:33
>>207
おれも使ってみよう
ちなみにまだ卒業してません(もうすぐ30歳)

210 名前:デフォルトの名無しさん [sage] 投稿日:04/02/01 12:38
>>209
魔法が使えるようになるまでもう少しだね。

211 名前:デフォルトの名無しさん [] 投稿日:04/02/02 05:15
UDPパケットを送ることはできますか?

212 名前:デフォルトの名無しさん [sage] 投稿日:04/02/02 13:14
そもそもTCP/IPどころか、httpしか対応してないような。

213 名前:デフォルトの名無しさん [sage] 投稿日:04/02/02 18:22
>>204
retroguardじゃだめなの?

214 名前:デフォルトの名無しさん [] 投稿日:04/02/02 22:01
アプリ動作中に携帯電話本体の終了ボタンを押すと、
ソフトキーのボタンが利かなくなってしまうのですが
どのように対応すればよいのでしょう?

215 名前:204 [sage] 投稿日:04/02/03 02:32
遅レスだけど魔法使えるようになりますた。
もとい、>>206氏の指摘どおり -noboc でバイトコード最適化切ったら動くようになりました。
他のオプションもひとしきりためしたけど、動作が変わったのは -noboc だけですた。
似たような構造のほかのプログラムにも jarg かけたけど、普通に動いちゃったし、レアケースなのかなあ。
とにかく、マゾでありがとうございます。

ついでに 7zip かけたら、トータル 30KB が 25KB くらいまでダイエットされました。
漏れの童貞もらってやってください。

216 名前:デフォルトの名無しさん [sage] 投稿日:04/02/03 10:08
やっぱjargのバイトコード最適化にはバグがあるって事か…
ProGuardとかに乗り換えた方がいいのかな?

それと、7zipを使う場合はアーカイブするファイル数に注意
昔使ったとき、N503(4かも?)でアーカイブするファイル数が多いと起動出来なかった記憶がある

DTはイラネ。適当にその辺に捨ててくれ
不法投棄になりそうなら、業者に引き取ってもらえ

217 名前:デフォルトの名無しさん [sage] 投稿日:04/02/05 01:38
MIDPやろうと開発環境の準備を始めました。Vodafoneです。
でもどうしてもSun ONE Studio4 Mobile Edition と
VodafoneエミュのIDE統合ができない。
http://zdn.zentek.co.jp
のサポートからダウンできる資料を参考にやってみたけど。
この通りやって実行すると「メインクラスがない」とか怒られて
うまくアプリが動作しない。何を勘違いしているのだろう。
だれか出来た人います? JBuilderではどうでしょう?

218 名前:217 [sage] 投稿日:04/02/05 01:46
補足。エミュを自分で立ち上げて実行すると上手く動く。当然か。。。

219 名前:デフォルトの名無しさん [] 投稿日:04/02/05 09:19
>>216
メインクラスがないって言われるのは、
きちんと大抵はCLASSPATHが通ってないか、
そんな理由ではなかったか?


220 名前:217 [sage] 投稿日:04/02/05 14:11
>>219
どうやらそのようです。マニュアル通りにやるとDOSプロンプトから、
java -cp c:\J-PHONE-SDK\bin\jbmidp.jar;c:\J-PHONE-SDK\lib\stubclass.zip;c:\WTK104\lib\midpapi.zip com.zentek.jam.ControlPanel c:\test\test.jad
と呼ぶことに相当するようです。すると
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。
と例外が多数発生。
どうやら、javaVMにクラスパスを渡すのに失敗してるようです。
javaVMのヘルプにはクラスパスは ; で区切れと書いてあるのですが。
最初は ; の前後にスペースを入れるのかと思ってましたが、
入れると不正な処理が発生(汗

結果としては
java -cp c:\J-PHONE-SDK\bin\jbmidp.jar com.zentek.jam.ControlPanel c:\test\test.jad
とやると通るようなので、そうなるようにIDEを設定したら上手くいきました。
うーむ謎だ。エミュが起動すればよいから、これで良いのですかね?

221 名前:217 [sage] 投稿日:04/02/05 14:20
そしてIDEの設定にある、起動クラスパスとクラスパスの違いがよく分からない。
これらはIDEから使わないのか?なんで2つあるんだろう。

222 名前:デフォルトの名無しさん [] 投稿日:04/02/06 12:22
VodafoneのC4端末でPhraseデータを読み込もうと思っています。
どっかで、Phrase()のコンストラクタにbyte配列を渡すとうまくいく、とあったんだけど
できない・・

InputStream in = getClass().getResourceAsStream("/test.mmf") ;
int size = in.available();
byte[] b_data = new byte[size];
in.read( b_data, 0, b_data.length) ;
in.close() ;
Phrase p = new Phrase(b_data);

size は0が返ってきてしまう・・
それで、pはnullだと・・
どこに問題があるの?

P4端末だと「com.jblend.media.smaf.phrase」を使用して問題なく動作したんだけどな・・


223 名前:デフォルトの名無しさん [sage] 投稿日:04/02/06 12:44
InputStream#available()は常に0が返ってくるからだろ。
javadoc読めよ

224 名前:222 [] 投稿日:04/02/06 13:08
>>223
すまん間違ってた・・

byte[] b_data = new byte[1000];
in.read(b_data, 0, b_data.length);
in.close();

Phrase p = new Phrase(b_data); <<-- ここ

ここで、Phrase:checkfailedって言われて落ちる・・

十分な長さの配列宣言してるのに。




225 名前:デフォルトの名無しさん [] 投稿日:04/02/06 14:14
>>224

226 名前:デフォルトの名無しさん [sage] 投稿日:04/02/06 14:28
>>224

in.readで指定したサイズ分が読めるとは限らないので
戻り値に-1が帰ってくるまで読み続けるのが良いかと。
こんな感じか?

boolean bQuit = false;
int offset = 0;
byte[] b_data = new byte[1000];
while(bQuit!=true)
{
  int readSize = in.read(b_data, offset, b_data.length);
  if(readSize == -1)
    bQuit = true;
  else
    offset += readSize;
}
in.close();


227 名前:244 [] 投稿日:04/02/06 14:55
>>226 resサンキューです。

どうも、byte配列には読み込めてるみたい。
Phraseのコンストラクタに渡しているところで、データのチェックが失敗しているみたい・・
なんでだろう?

228 名前:デフォルトの名無しさん [sage] 投稿日:04/02/06 17:02
わろた
http://www.geocities.jp/p_java_lang/

229 名前:デフォルトの名無しさん [sage] 投稿日:04/02/06 18:46
>>227
読み込むファイルのサイズと、バイト配列のサイズが一緒じゃないとエラーになるぞ。

230 名前:227 [] 投稿日:04/02/06 18:57
>>229
そうかと思ってやってみたんだけど、エラーになるなー。

バイナリエディタで開いてみたら、208Byteだったんで、やってみたけどダメだった・・

mmfファイルってC4端末で読めるんだよね?

231 名前:デフォルトの名無しさん [sage] 投稿日:04/02/06 19:33
SMAF Phraseって、.spfじゃないのか?

232 名前:デフォルトの名無しさん [sage] 投稿日:04/02/06 20:07
>>230
.mmfはAudio Phraseだよ

Audio Pharse再生できるのはP型以降、よってC4型では再生不可かと

233 名前:230 [] 投稿日:04/02/06 23:00
231,232>>
え!?mmfってAudioPhraseなんだ!
スマン、入り口が間違ってた・・
みんなサソキュ。

234 名前:デフォルトの名無しさん [sage] 投稿日:04/02/08 00:11
MediaPlayerを介さずにVアプリで使える画像ってPNGの256色だけ
と理解していたのだけど違う?
フルカラーのjpgやPNGを動かしたりできるかな?
なぜか
Image img = Image.createImage("/test.jpg");
g.drawImage(img, 0, 0, Graphics.LEFT | Graphics.TOP);
とやると、P4型エミュだと画像が表示されるのだが。(WirelessToolkit だと無理
これって公式な動作?

235 名前:デフォルトの名無しさん [] 投稿日:04/02/08 00:48
初心者ですが、お願いします。m(_ _)m
ezplus(Java)で、HttpConnection (cgiファイルに対してGETリクエスト)
を利用して日本語のテキストを取得したいんですが、文字化けしてしまいます。
(通信は上手く言ってるようなのですが)

どこをいじればよいか色々調べたのですが、分からないのでどなたか教えてください。
というか、なにを調べたらいいかもよく分かりません。

推測ですが、『文字コード』という文字を解釈する約束みたいなのがあって、
その約束を上手く守れてないからでしょうか?
だとしたら、Java、cgi、どちらのコードに問題があるのでしょうか。
それとも見当ハズレの推測でしょうか?

ちなみに、英数字では思い通りの結果が得られます。
宜しくお願いいたします。m(_ _)m


236 名前:235 [] 投稿日:04/02/08 01:19
それから、IEで取得した場合は正常に日本語が表示されています。

宜しくお願いします。

237 名前:235 [] 投稿日:04/02/08 04:49
なんどもすいません。
CGIはパールです。

238 名前:デフォルトの名無しさん [sage] 投稿日:04/02/08 08:58
>>235
shift-jisしか駄目なはず。
IEでエンコードがどれになってるかを調べて、shift-jisになって
なかったらCGIが原因でしょう。
jcodeなりで変換してから出力しましょう。

239 名前:235 [] 投稿日:04/02/08 12:07
>>283さん
どうもありがとうございます。

ところが
今IEで確認したのですが、
(表示)->(エンコード)
シフトJISになってました。

240 名前:デフォルトの名無しさん [sage] 投稿日:04/02/08 15:08
>>234
WTKはJPEG未サポートだったはず

>>235
その部分のソースコードさらしてみ?

241 名前:デフォルトの名無しさん [] 投稿日:04/02/08 15:32
俺はネットから画像(jpeg)を↓のように(途中は省く)して取得してるが。

image = Image.createImage(b_image, 0, b_image.length);

あかんのか?

242 名前:デフォルトの名無しさん [sage] 投稿日:04/02/08 15:35
MIDP1.0では、PNG形式をサポートしなければならない、としか決まってないと思うた。
JPEGでも動くし、動くならそれでもいいような、、、

243 名前:デフォルトの名無しさん [] 投稿日:04/02/08 15:40
出来る限り、バグの元は取っときたいので、上と掛け合ってみよう。


244 名前:デフォルトの名無しさん [sage] 投稿日:04/02/08 17:49
>>235
文字列化するときに、SJISを指定してる?

245 名前:デフォルトの名無しさん [sage] 投稿日:04/02/08 21:17
デフォルトがSJISなので無指定でもOKだった気がしないでもない
なので、変換をやってないと思われ
バイト列にSJISのデータを読み込んで、変換すればヨロシ
詳しくはCLDCのAPIマニュアルのStringクラスを参照の事

246 名前:235 [] 投稿日:04/02/09 02:09
>>244さん、>>245さんありがとうございます。m(_ _)m

ご意見を参考にして必死で考えたつもりなんですが、
次のようなコードを書くことしか出来ませんでした。

//受け取った最初の文字列
String oStr;
/* oStrを受け取る処理がありますが省略 */

//Shift_JIS の文字コードのバイト配列に変換(という意味なんでしょうか?)
byte[] b = oStr.getBytes("SJIS");

//bをShift_JISコードを指定して文字列に変換
String nStr = new String(b,"SJIS");

ここまでやってみたのですが、やはり文字はほとんどが"?"(バイトをそのまま出すと"63"になりました)でした。

全く見当違いなのか、惜しいところまで行ってるのかも分かりません。
出来ましたらぜひ更なるご教授をお願いいたします。

247 名前:235、246 [] 投稿日:04/02/09 02:21
ちなみに、
getByte(String)
String(byte[],String)
で、文字コードを指定する引数は以下のものを試しましたが、
”SJIS" 以外、全て UnsupportedEncodingException が返されます

"SJIS",
"Shift_JIS","EUC_JP","EUC_JP" (この3つは例外が返る)

248 名前:デフォルトの名無しさん [sage] 投稿日:04/02/09 02:22
あ、最後は
"EUC-JP"でした。。

249 名前:235 [] 投稿日:04/02/09 03:12
>>240さんの発言を読み落としてました。あつかましいですが、さらさせていただきますm(_ _)m

1.Perl-CGIのコード : ez_sample.cgi

#!/usr/local/bin/perl

$title = "ez_sample";

&printData(); #このサブルーチンの呼び出しのみ

#表示する文字列を取得して、その長さを求める
sub printData(){
 $text = &getText();  #表示する文字列の取得
 $len = length($text); #文字列の長さ(i-mode に必要)

 print "Content-type: text/html\n";
 print "Charset: Shift_JIS\n";
 print "Content-length: $len\n";
 print "\n";
 print "$text";   #本文の出力
}

sub getText(){
 $text = "<HTML>\n<HEAD>\n\t<TITLE>$title</TITLE></HEAD>\n<BODY>\n";
 $text = $text."日本語のサンプル<br>\n";
 $text = $text."A sample in English.\n";
 $text = $text."</BODY>\n</HTML>\n";
 return $text;
}

250 名前:235 [] 投稿日:04/02/09 03:22
続いて Java の該当メソッドです
test 1/4

 private boolean test(){
  System.out.println("データ受信");

  String url = "http://hpcgi2.nifty.com/zubora/ez_sample.cgi";
  HttpConnection hc = null;
  DataInputStream di = null;
  String res = null;
  byte[] bs = null;
  String newString = null;



251 名前:デフォルトの名無しさん [] 投稿日:04/02/09 03:23
  try{
   hc = (HttpConnection) Connector.open(url);
   di = new DataInputStream(hc.openInputStream());
   int ch;
   while((ch = di.read()) != -1){
    res += (char)ch;
   }
  }catch(Exception e){ }
  finally{
   try{
    if(hc != null)
     hc.close();

    if(di != null)
     di.close();
   }catch(Exception e){ }
  }
  
  System.out.println("受信直後のデータ");
  System.out.println(res);

252 名前:235 test 3/4 [] 投稿日:04/02/09 03:24
  try{
   bs = res.getBytes("SJIS");
  }catch(UnsupportedEncodingException e){
   e.printStackTrace();
  }
  
  try{
   newString = new String(bs,"SJIS");
  }catch(UnsupportedEncodingException e){
   e.printStackTrace();
  }
  
  System.out.println("new String(getByte(res,\"SJIS\"),\"SJIS\")");
  System.out.println(newString);
  
  return true;
 }

253 名前:235 test 4/4 [sage] 投稿日:04/02/09 03:25
以上です。失礼しました。m(_ _)m

254 名前:デフォルトの名無しさん [sage] 投稿日:04/02/09 13:38
なんか難しく考えすぎな気が…

>while((ch = di.read()) != -1){

じゃなくて、バイト列に読み込んで、それを変換する

byte[] b = new byte[size];
for (int off = 0; off < size;) {
int r = di.read(b, off, b.length - off);
if (r == -1) break;
off += r;
}
String nStr = new String(b,"SJIS");


255 名前:七誌 [] 投稿日:04/02/09 22:09
C4仕様でPhraseクラスのpause(),resume()メソッド
を使いたいのですが、なぜか一時停止から再生
を始めると、最初から再生が始まってしまうのです。
どうしてでしょうか?

256 名前:235 [] 投稿日:04/02/09 23:42
(ToT) おぉーー出来ました。。。m(_ _)m
>>254さん、ありがとうございました。
今度コーヒーでも奢らせてください。(*´∀`)

そのほかの皆さんも本当にありがとうございました。

257 名前:デフォルトの名無しさん [sage] 投稿日:04/02/10 18:10
>255
resumeした時はフレーズデータの先頭から再生される仕様

258 名前:デフォルトの名無しさん [sage] 投稿日:04/02/11 13:11
Vアプリのエミュでフォントのサイズが小さくならんのですが。

class DrawCanvas extends Canvas {
private static Font font = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL);
protected void paint(Graphics g) {
g.setFont(font);
g.setColor(255,255,255);
g.drawString("てすと", 15, 135, Graphics.TOP | Graphics.LEFT);
}
}

こんな感じです。Font.SIZE_SMALLのところを変えても変化がありません。
Fontはpaintの外で作れとか書いてあったからそうしてます。
何か間違ってる?

259 名前:258 [sage] 投稿日:04/02/11 13:14
上の通りだと文字が白で見えないな。どうでも良いことですが。m(__)m

260 名前:デフォルトの名無しさん [] 投稿日:04/02/12 00:38
単に、キャリア側で複数のサイズのフォントを
用意して無いからじゃない?

261 名前:デフォルトの名無しさん [sage] 投稿日:04/02/12 10:09
>>258
機種ごとにフォントサイズが決められてて、
一部機種はsmall/large/mediumともすべて同じサイズに規定されてたりする。
なんで実質いじれないと思った方がいいかも。
サイズ一覧はdp.j-phone.comサイトにあったハズ(今サイト落ちてるみたい)

262 名前:七誌 [] 投稿日:04/02/12 10:11
>>257さん、ありがとう(^o^)/
では、Vアプリで一時停止・一時停止からの再生
はどのようにすればよいのですか?


263 名前:デフォルトの名無しさん [sage] 投稿日:04/02/12 10:50
停止ポイントを覚えておいて次回はそこから再生?
MIDIだと途中で止めて状態保持したまま再開って面倒なんだけど
これはどうなんだろ

264 名前:七誌 [] 投稿日:04/02/12 11:32
あつかましいと思われるかもしれないですが、
具体的にどのようにすればよいのでしょうか?


265 名前:デフォルトの名無しさん [sage] 投稿日:04/02/12 15:19
>263
phraseでの途中からの再生は無理です、常に先頭からになりますね。

>264
C型ではあきらめましょう、P型だと一時停止した場所から再生可能な様ですが。

ここら辺は全てVアプリ開発ガイド 開発編に載っている情報です。

266 名前:七誌 [] 投稿日:04/02/12 16:36
読んでいなかった・・・。
すいません、ありがとうございました。

267 名前:七誌 [] 投稿日:04/02/12 17:30
Sun ONE Studio 4 update 1, Mobile Edition
を使って、Vアプリを開発したいのですが
コンパイルエラーを起こして、先に進めません(;_;)
どうすればよいでしょうか?
エミュレータ設定もちゃんとしたはずなのに・・・

268 名前:デフォルトの名無しさん [] 投稿日:04/02/12 19:18
J-SH-010でPNG画像の透過が
ぜんぜんきかないのですが、
C4型端末ってこういうものなんでしょうか。

過去W型端末のアプリを作った場合にもPNGの透明色
が上手く抜けないことがありましたが。。。。

それともPNGファイル側で何か工夫すべきなのでしょうか?
知恵をお授け下さいー;;

269 名前:デフォルトの名無しさん [sage] 投稿日:04/02/12 20:37
>268
フルカラーPNGとかいう事はないよね?
256色じゃないと抜けないような

270 名前:デフォルトの名無しさん [sage] 投稿日:04/02/12 21:41
>>268
フルカラーのヤツだと、透過部がグニュグニュした青いのになるw(P型
早いとこサポートしてほしいよな。

271 名前:デフォルトの名無しさん [sage] 投稿日:04/02/12 22:54
C4はPNGの透過が使えない
機種依存だっかたも

http://news6.2ch.net/test/read.cgi/appli/1072876113/
>ゲームの類は、Vodafoneへの移植がいつもネックになります。
>特にC4アプリ。
>
>他のキャリアならdrawImage一発で済むところに
>透過PNGが使えない機種がありやがるばっかりに
>サイズに制限のあるスプライトをやりくりし倒すことになる。
>面倒くさいったらありゃしない。

272 名前:デフォルトの名無しさん [sage] 投稿日:04/02/13 01:47
>>268
C型はpng透過は使えません
スプライトにするしかない

273 名前:デフォルトの名無しさん [sage] 投稿日:04/02/13 02:20
当方ezです。
http通信に関する詳しいmidpサンプルはないでしょうか。

やろうと考えていることは画像のダウンロードです。

一応探しては見て以下のサンプルは見つけたのですが
はじめて見る物ばかりで何をしているのか分からず困っています。

ttp://cgi.sinsen.org/midp/#d5
ttp://www.geocities.jp/morioka/computer/java/ezplus/lecture02.html

複数の画像を得るのに最低限必要なことを教えていただけないでしょうか。
テキストか何かの形で一気にダウンロードしてレコードストアに記録しておけばいいことは分かるのですが。

274 名前:デフォルトの名無しさん [] 投稿日:04/02/13 10:39
269-272

レスありがとうございます。
やはりパレットPNGでも機種依存ですか・・・。
とりあえず、それらの機種は無視するか、
スプライト使う方向で考えてみます。


275 名前:デフォルトの名無しさん [] 投稿日:04/02/13 18:18
ezアプリなんですが、WEBブラウザからダウンロード済みのアプリを起動することはできるんでしょうか?
iアプリの <A ista="#aaa" href="">起動</a> と同じ事なんですが。

276 名前:デフォルトの名無しさん [sage] 投稿日:04/02/13 23:54
MIDP1.0で動くコンボボックスのクラスライブラリどこかにありませんか?
当方業務アプリつくってるんだけどコンボボックスないとかなり不便。

277 名前:デフォルトの名無しさん [sage] 投稿日:04/02/14 01:48
>>276が昼休みに作ってフリーで公開すれば
みんな幸せに!

278 名前:デフォルトの名無しさん [sage] 投稿日:04/02/14 04:22
>>276
ListをIMPLICITで動かせばComboBoxの選択画面のようなインターフェースを作れる。
でも、そんなListをFormのItemから呼び出してやるような方法は、なさそう。
GroupChoiceをIMPLICITでFormに追加してComboBoxのようにできれば、望みのようなことが出来るんだろうけど。

オレは、Stringを追加したIMPLICITなListから、
選択されたらさらにIMPLICITなListを表示して選ばせ、元のListに戻る、
てな感じで片づけちゃったけど。

DateFieldやTextFieldと混在させたいなら、がんがってItemからComboBoxを自作しる。


279 名前:デフォルトの名無しさん [] 投稿日:04/02/14 05:53
canvasクラスのキー入力で使うフィールドで
「クリア」ボタンって、何を使えばいいでしょう?
ちなみにCanvas.KEY_CLEARは無かった。
今は実測値を使っていますが、格好悪いんで。
こんな感じ final int KEY_CLEAR= -2147483646;
Vアプリです。

280 名前:デフォルトの名無しさん [sage] 投稿日:04/02/14 15:02
>>279
仕様上、0〜9、*、#、ソフトキー1〜3以外のボタンは未定義。
実際に使えるかどうかは別として。

281 名前:デフォルトの名無しさん [sage] 投稿日:04/02/14 16:27
>>265
PhraseTracker、たま pause からの復帰に失敗することない?
P4、P5では正常に動作するのに、C4だけ一時停止の後、音が戻らないことがある。

何が原因で起こるかわからないんだけど、エミュレータ上でも起こるので
機種依存の動作じゃないみたいだし…。

startApp() だの pauseApp() だの中では何も特別なことはしてないし、
Vodafone側の主張によれば、自動で戻るはずなんだけど…。

仕方ないので、あらためて
startApp() 内でPhraseTracker#play()、
pauseApp()内でPhraseTracker#stop()を呼ぶようにして
無理やり回避できるのは確認したんだけど、これっておかしいよね?
これやっちゃうと、P4、P5でも最初から再生しなおしになっちゃうし。

不思議すぎる…。

282 名前:デフォルトの名無しさん [] 投稿日:04/02/14 16:40
>>279
さんきゅ
やっぱりそうかぁ

Vアプリのエミュでは、メモとマナーボタンが無いので
カーソルキーの斜め下でそれぞれ代用してみた
皆はどうしてる?
それとも、Vアプリ固有実装は避けてる?

283 名前:276 [sage] 投稿日:04/02/17 00:25
>>278
ありがとう。

>オレは、Stringを追加したIMPLICITなListから、
>選択されたらさらにIMPLICITなListを表示して選ばせ、元のListに戻る、
>てな感じで片づけちゃったけど。

やっぱそれしかないよねー 
がんばって自作します。



284 名前:デフォルトの名無しさん [sage] 投稿日:04/02/17 00:51
Vアプリって勝手サイトでは配布できないんですか?

285 名前:デフォルトの名無しさん [sage] 投稿日:04/02/17 01:07
-2147483646 って 0x80000002 なのかね

286 名前:デフォルトの名無しさん [sage] 投稿日:04/02/17 01:27
>>279
EZアプリでは 0 だったから割とスッキリだったけど
じゃあ if ( keyCode < 1 ) みたいなのどう?


287 名前:デフォルトの名無しさん [] 投稿日:04/02/17 08:34
>>284
うわっ気がつかなかったよー
ある意味 -2 じゃん

288 名前:デフォルトの名無しさん [sage] 投稿日:04/02/17 22:32
>>285
あってる
てか、負の2の補数は、絶対値のビットをすべて反転させてたものに1加えるって覚えとけ。

289 名前:デフォルトの名無しさん [] 投稿日:04/02/18 01:13
AUって、png表示できる?

これが本題なのだが
J-phoneで動いてるアプリって、jblend.*とかj_phone.system.*を
全て排除すればAUでも動きますか?
でもって、ぶっちゃけ後は何すれば良い?

290 名前:デフォルトの名無しさん [sage] 投稿日:04/02/18 01:29
>>289
>>289
CLDC+MIDPの範囲内では、基本的に同じ。
仕様を見比べてみると解るが、双方とも似たような拡張APIがあったりするので、
ものによっては、1日もかからずに移植&テストが終わったりすることもある。

291 名前:デフォルトの名無しさん [sage] 投稿日:04/02/18 01:30
負の2の補数
( ´,_ゝ`)プッ

292 名前:デフォルトの名無しさん [sage] 投稿日:04/02/18 03:44
>>289
むしろpngが主戦力でつ

293 名前:289 [] 投稿日:04/02/18 08:51
>>291
えっと、透過も平気ですか?

いま開発キット回りを見てきたけど、意外とまんどくせ
拡張子が謎だし
まぁ、ちこっと頑張って移植すれば、ユーザが2倍になるから
やってみるかな

294 名前:デフォルトの名無しさん [sage] 投稿日:04/02/18 17:53
>>289
http://www.saturn.dti.ne.jp/~npaka/midp2/faq.html

クレームも2倍だから、ほどほどに頑張るべし

295 名前:デフォルトの名無しさん [] 投稿日:04/02/19 10:56
Sun ONE Studio 4 update 1, Mobile Edition
でアプリ作っているんだけど、絵が読み込めないんだよね。
原因のわかる人いたら、教えてね。

296 名前: [] 投稿日:04/02/19 11:55


297 名前:デフォルトの名無しさん [sage] 投稿日:04/02/20 16:30
256KB P5型のエミュレータが公開されました。
http://www.dp.j-phone.com/dp/

298 名前:289 [] 投稿日:04/02/20 18:05
>>296
やっと、されたね!!
誰か使った人いる?
でもって、P4型エミュと一緒のPCにインストールしても
競合しないで使えるもん!?

299 名前:デフォルトの名無しさん [sage] 投稿日:04/02/20 21:26
先日SUNのSCP-Jを取ったばかりの初心者なんですが
一度携帯のアプリを作ってみたいなと思って検索したりしたのですが、
ヒットしませんでした。
Vアプリを作るにあたって参考になるサイトがないのですが
どなたかご存知ないですか。
iアプリはある様なんですが。

なにぶん貧乏なのでネットで参考になるHPがあれば良いのですが・・・
よろしくお願いします。

300 名前:デフォルトの名無しさん [sage] 投稿日:04/02/20 22:13
>>299
http://www.itmedia.co.jp/mobile/0203/08/n_j1.html
正直、いちからちゃんと説明したいいサイトがない。

301 名前:デフォルトの名無しさん [sage] 投稿日:04/02/21 00:43
やっとP5エミュ公開か、おそすぎんだよまったく

302 名前:デフォルトの名無しさん [sage] 投稿日:04/02/21 00:50
フォントサイズが指定できるようになってたり。

それより、サンプルコードが嬉しい。

303 名前:デフォルトの名無しさん [sage] 投稿日:04/02/21 00:51
サンプルコード内にJad更新Ant Taskがあった。

304 名前:デフォルトの名無しさん [] 投稿日:04/02/21 05:56
今から作ろうとは思うけど
SH53でPDA並に使えるPIMが欲しい

305 名前:デフォルトの名無しさん [sage] 投稿日:04/02/21 09:56
299です。
>>300さん
レス、サンクスです。
サイトは無いですか。
実はこの本どうかなって思ってるんですがどうでしょうか。
「JBuilder MobileSet―携帯Javaアプリケーション開発ガイド」
ご存知の方おられますか?
iアプリならサイトもちらほら見かけるのになぁ…

306 名前:デフォルトの名無しさん [sage] 投稿日:04/02/22 17:09
P5 キタ━━━━━━(゚∀゚)━━━━━━!!!!
出てる予感がしたからみたら本当にあった。。
>>301
まぁ遅いよな

307 名前:デフォルトの名無しさん [sage] 投稿日:04/02/22 22:14
P5型のエミュが出たので早速StorageConnection 使ってみたんですが、上手くいかんです。
StorageConnectionからInputStreamを取得しようとすると

at com.jblend.security.jscl.SecurityManagerImpl.checkPermission(+67)
at com.jblend.io.j2me.storage.Protocol.openInputStream(+11)
と怒られます。なぜ?

308 名前:307 [sage] 投稿日:04/02/22 23:28
jad内に
MIDlet-Application-Security: Y
が必要だったようです。どうもすみません。

309 名前:デフォルトの名無しさん [] 投稿日:04/02/23 10:19
SpriteCanvasに文字描くときって文字もスプライトデータで用意しなきゃだめ?


310 名前:デフォルトの名無しさん [sage] 投稿日:04/02/23 13:49
ドキュメントを読めば解るが、仮想画面にはGraphicsクラスのメソッドで描画できる。
フレームバッファにはスプライト以外は描画できない。

311 名前:デフォルトの名無しさん [sage] 投稿日:04/02/23 14:17
Vアプリって、スプライトと3Dって同時に使えないの?
これは、C4だけじゃなくて、P4でもダメ?


312 名前:デフォルトの名無しさん [sage] 投稿日:04/02/23 17:07
>>311
だめです。

313 名前:デフォルトの名無しさん [sage] 投稿日:04/02/24 00:56
けち〜

314 名前:デフォルトの名無しさん [] 投稿日:04/02/24 13:28
質問させてください
V従量版のウィザードリィの表示文字ってなんであんなに小さいんでしょう?
サイズSMALLでもあんなに小さくならないですよね?

315 名前:デフォルトの名無しさん [sage] 投稿日:04/02/24 13:54
>>314
スプライトデータに文字を用意してそれを表示してるから

316 名前:314 [sage] 投稿日:04/02/24 14:04
やっぱり・・面倒なことしてるなぁ
>>315
ありがとうございます

317 名前:デフォルトの名無しさん [sage] 投稿日:04/02/25 01:56
>>305

>実はこの本どうかなって思ってるんですがどうでしょうか。
>「JBuilder MobileSet―携帯Javaアプリケーション開発ガイド」
>ご存知の方おられますか?

その本はわかりませんが
「Java2ME MIDP ゲームクリエーターズガイド」
http://www.amazon.co.jp/exec/obidos/ASIN/4774114707/ref=sr_aps_b_/250-6819675-5916216
という本はなかなかよいですゾ。

318 名前:デフォルトの名無しさん [sage] 投稿日:04/02/25 22:38
「Javaの勢いは止められない」――Sun、モバイルJavaで一連の発表
http://www.itmedia.co.jp/news/articles/0402/24/news026.html

319 名前:デフォルトの名無しさん [sage] 投稿日:04/02/25 22:40
305です。
>>317さん
レスありがとう。
一回本屋で探してみますね。
とにかく凝ったものが作りたいとかではなくて、
プログラミングを少し覚えたので何か作ってみたいと
思って携帯のアプリでもどうかなと思いまして。
Vアプリを自分で作ろうと思ったのですが中々良いサイトや
本が見つからなくて困ってたんです。

320 名前:デフォルトの名無しさん [sage] 投稿日:04/02/25 23:17
>>319
Java自体も初心者?

321 名前:デフォルトの名無しさん [sage] 投稿日:04/02/26 14:28
SH08で120x120で256のPNGが表示できないんだけど、
色数減らせば出るんだけど、サイズ制限とかなんかあるのですか?


322 名前:デフォルトの名無しさん [sage] 投稿日:04/02/26 18:35
229です。
>>320さん
SCP-Jを取ったばかりの初心者です。

323 名前:デフォルトの名無しさん [sage] 投稿日:04/02/26 19:52
javaの勉強自体は携帯に限らず探せば結構参考になるサイトが見つかるかも。

324 名前:299 [sage] 投稿日:04/02/26 20:23
そうですね。
でも何となく携帯アプリに興味が沸いてきて
作ってみたくなったので…

325 名前:デフォルトの名無しさん [sage] 投稿日:04/02/26 21:24
>>322
SCP-J取れるくらいの予備知識があれば十分

326 名前:289 [] 投稿日:04/02/26 22:43
>>321
12kだか14kくらいが上限だと思う
あと、16色以下が出なかったような気がする

327 名前:デフォルトの名無しさん [sage] 投稿日:04/02/27 13:07
>>326
なるほど、たしかに表示できるサイズはそれより小さかったです。
しかし、J-SH07のヒープの少なさはなんなんだろうか、
これじゃ、なんにも出来ないよ。


328 名前:デフォルトの名無しさん [sage] 投稿日:04/02/27 18:38
>>324
そういう意味でなくて携帯用のmidpも基本は一緒だから勉強は普通のjavaでやってアプリ作れるよと。


329 名前:デフォルトの名無しさん [] 投稿日:04/02/28 13:39
前スレの824さんが言ってた
Canvas上での長文の改行の仕方なんですが、ビルドがうまくいくのに、実行できません。
長い文を表示するときに、フォントの幅から表示できる一列の文字数を割り出して、
それをsubstring()を使って表示していくんですよね。
なんでうまくいかないの??


330 名前:329 [sage] 投稿日:04/02/28 22:09
解決しました

331 名前:デフォルトの名無しさん [] 投稿日:04/02/29 01:53
>>330
こーゆー時は、解決法も書くべし

332 名前:デフォルトの名無しさん [] 投稿日:04/02/29 15:32
ezアプリのソフトキーのラベルの変更ってどうすればいいんでしょうか?
if(mode == 1){
talkingCommand = new Command("決定", Command.SCREEN, 1);
menuCommand = new Command("MENU", Command.SCREEN, 2);
}else if(mode == 2){
talkingCommand = new Command("確認", Command.SCREEN, 1);
menuCommand = new Command("中止", Command.SCREEN, 2);
}
this.addCommand(menuCommand);
this.addCommand(execCommand);
とするとラベルがどんどん増えてしまうし、最初に
this.removeCommand(menuCommand);
this.removeCommand(execCommand);
とするとそこでとまってしまうのですが…

333 名前:デフォルトの名無しさん [] 投稿日:04/02/29 15:32
ezアプリのソフトキーのラベルの変更ってどうすればいいんでしょうか?
if(mode == 1){
talkingCommand = new Command("決定", Command.SCREEN, 1);
menuCommand = new Command("MENU", Command.SCREEN, 2);
}else if(mode == 2){
talkingCommand = new Command("確認", Command.SCREEN, 1);
menuCommand = new Command("中止", Command.SCREEN, 2);
}
this.addCommand(menuCommand);
this.addCommand(execCommand);
とするとラベルがどんどん増えてしまうし、最初に
this.removeCommand(menuCommand);
this.removeCommand(execCommand);
とするとそこでとまってしまうのですが…

334 名前:332 [sage] 投稿日:04/02/29 15:43
連投な上にコマンド名違うし。。。
talkingCommandはexecCommandに脳内変換お願いします。

335 名前:デフォルトの名無しさん [sage] 投稿日:04/02/29 17:29
>>332
毎回インスタンス生成するのは間違い。

CommandをMIDletやDisplayableのコンストラクタで生成して、インスタンスフィールドに保持しておく。
あとは、ソフトキーのラベルを変更したいときに、add/removeすれば良い。

336 名前:332 [sage] 投稿日:04/02/29 18:14
>>335
毎回インスタンスを作るなっていうのはわかるんですが、
Command.getLabelはあるけどsetLabelはないですよね?

↓考え方としてはこんな感じかな、と思うんですが…
if(mode == 1){
execCommand.setLabel("決定");
menuCommand.setLabel("MENU");
}else if(mode == 2){
execCommand.setLabel("確認");
menuCommand.setLabel("中止");
}
this.removeCommand(menuCommand);
this.removeCommand(execCommand);
this.addCommand(menuCommand);
this.addCommand(execCommand);

337 名前:デフォルトの名無しさん [sage] 投稿日:04/02/29 19:17
>>333
execCommand1 = new Command("決定", Command.SCREEN, 1);
menuCommand1 = new Command("MENU", Command.SCREEN, 2);
execCommand2 = new Command("確認", Command.SCREEN, 1);
menuCommand2 = new Command("中止", Command.SCREEN, 2);

 :

this.removeCommand(execCommand1);
this.removeCommand(menuCommand1);
this.removeCommand(execCommand2);
this.removeCommand(menuCommand2);
if(mode == 1){
 this.addCommand(execCommand1);
 this.addCommand(menuCommand1);
}else if(mode == 2){
 this.addCommand(execCommand2);
 this.addCommand(menuCommand2);
}

こんな感じか
配列にしたり、上手いこと管理しないと破綻しそうだが
参照とか使えないのかな?(←良くわかってない)

338 名前:332 [sage] 投稿日:04/02/29 20:17
なるほど、って思ってやってみたけど
this.removeCommand(execCommand);
がそもそも通らない罠_| ̄|○
エミだけど例外がでません…

今のソースはこんな感じ。
長くなるんでmenuCommandは消しますた。
execCommand1 = new Command("決定", Command.SCREEN, 1);
execCommand2 = new Command("確認", Command.SCREEN, 1);
execCommand = execCommand1;

 :
try{
 System.out.println("--changeLabel");
 this.removeCommand(execCommand);
 System.out.println("remove command");
 if(mode == 1){
  execCommand = execCommand1;
 }else if(mode == 2){
  execCommand = execCommand2;
 }
 this.addCommand(execCommand);
 System.out.println("add command");
}catche(Exception e){
 System.out.println("ERR" + e);
}

339 名前:332 [sage] 投稿日:04/02/29 20:19
訂正:エミ→エミュ

で、実行すると--changeLabelが出力されたところでとまります。
例外はキャッチできません。

340 名前:332 [sage] 投稿日:04/02/29 21:51
どうやら毎回起こってるわけではなくて、
ソフトキーを押した瞬間に問題が起こってるみたいです。

で、だめもとで実機でテストしてみたらうまくいきました。

が、イマイチすっきりしないので、もう少し追ってみます。

341 名前:デフォルトの名無しさん [sage] 投稿日:04/02/29 22:02
その処理は、commandAction()メソッドの中でやってるの?
それから、synchronized を使ってたりする?

たぶんだけど、デットロックが起きてるようにみえる。

342 名前:332 [sage] 投稿日:04/02/29 22:09
commandActionの外です。
自前のpaint関数で、modeに変化があったときに
上記の処理をしてました。

で、その自前のpaint関数はsynchronized使ってます。

343 名前:デフォルトの名無しさん [sage] 投稿日:04/02/29 22:36
それって、関数にsynchronizedを付けてるか、Canvas(?)に対してsynchronizedを使ってません?
たぶん、synchronizedを外してみれば、ちゃんと動くと思う。

344 名前:332 [sage] 投稿日:04/02/29 22:47
自作描画関数についてたsynchronizedをはずして
public synchronized void myPaint(Graphics g)
から
public void myPaint(Graphics g)
にしてみましたが、症状変わらずです。

synchronizedの記述がここ1箇所だけなので、
canvasに対しては使ってないと思います。

というかsynchronizedがどういうものか把握していませんで…
不勉強ですみません。

345 名前:343 [sage] 投稿日:04/02/29 23:02
synchronizedは、複数のスレッド間で、同時に動いてはマズいコードを排他するものです。

ほかに synchronizedを使ってないとなると、止まってしまう原因が分からない。
ちなみに、その自前の描画関数は、Canvas#paint()から呼んでるんだよね?


346 名前:332 [sage] 投稿日:04/02/29 23:23
>ちなみに、その自前の描画関数は、Canvas#paint()から呼んでるんだよね?
そうです。

こちらでも追っているのですが、手詰まり気味で…
今手元にあるのがW11Hだけなので、
明日にでも他の端末でも試してみることにします。

347 名前:デフォルトの名無しさん [sage] 投稿日:04/03/02 03:14
そもそも本当にデッドロックが問題なのか?ていう問題もあるし。
漏れとかはペイント側は完全に変数の解釈->描画だけに集中していて
ペイント側が実アプリ側には影響しないはずのドキュメントビュー構造を
徹底したにもかかわらず、どうも描画のリクエストが変なタイミングで
飛んできて絵が(たまに)壊れる等の理由で、結局
本体、描画コールバック双方を完全にSynchronizedした
同期型のプログラムで決着つけた。

機種依存の性か、音の出方に若干影響がでちゃったんだけど、
それはまあさておき。

基本的にペイント側は、元から出来上がってる情報を噛み砕いて
絵にする作業に徹してる限り(例えばペイント側が本体ルーチンに
参照される変数やオブジェの加工をするとかでない限り)、
デッドロックって起きようがないはずなんですよ。

こと、双方からsynchronized外して(挙動こそ変われど)デッドロック
状態を脱しないなら、スレッドが悪さしてる可能性を一度捨てて
コード全体を再検証したほうがいい。

時間が許すなら、各コンポネントの依存関係図とかも、ちゃんと書いた方がいいすよ。
ロックが起きる状況=アトミック(不可分な処理)の中でさらに他のコンポネントにチョッカイかけてるとか
アトミックと定義されてるオブジェクトの生成結果ではなく、途中の生成物に期待してる
オブジェがいるとか、その類なんだから。

348 名前:デフォルトの名無しさん [sage] 投稿日:04/03/03 03:23
Canvas#paint() はそもそもsynchronizedだったと思う。

349 名前:343 [sage] 投稿日:04/03/03 10:32
>>347
多分デットドックかなと。>>338 で removeCommand() の前にある printlnが表示されて、
後にあるprintlnが表示されてないらしいので、removeCommandで動かなくなってる。

>>348
synchronizedしてる対象が問題で、synchronized自体が問題なのではない。


MIDPの仕様的には許されるはずだけど、
(いまは忙しいので後日)VMの動作を確認しておきます。


350 名前:デフォルトの名無しさん [sage] 投稿日:04/03/04 16:28
VodafoneのV601SHの利用可能なオーディオデコーダ(オーディオトラック)
の数っていくつでしょうか?
まだエミュだけで開発してるもので。すみませんが。

351 名前:デフォルトの名無しさん [sage] 投稿日:04/03/04 22:35
初期値の入った配列を作りたいのですが char[] table = {・・・}; とすると1文字ずつ
初期化するコードが出るため、Stringで代用することを考えました。
しかし、String table = "\u0001\u0002・・・・";といった感じで初期値を与えたいのですが、
一部の値(\u000aや\u0022等制御コード?)があると、コンパイルできません。
こういった値を含んだ場合、文字列として初期化するにはどうしたらいいでしょうか?

352 名前:デフォルトの名無しさん [sage] 投稿日:04/03/05 01:45
>>350
MA3入ってる携帯は全部同じじゃないのかな?
40和音を信じるなら、10トラック持てる勘定だけど…。

漏れはC4でしか開発したことないので、よくわからんぽ。
実機持ってる神はいねーっすか。

353 名前:デフォルトの名無しさん [sage] 投稿日:04/03/05 05:56
>>350
オーディオフレーズのこと?
だったらトラックは1つ。メロディフレーズは4つ使える。

で、質問。BGMを12和音(3トラック分)で再生したいのだが、
メロディフレーズを重ねて再生するとズレませんか?

354 名前:デフォルトの名無しさん [sage] 投稿日:04/03/05 08:03
>>351
ググりなさい

\\, \n, \r, \", \t
(\u005c, \u000a, \u000d, \u0022, \u0009)


355 名前:デフォルトの名無しさん [sage] 投稿日:04/03/05 12:44
>>353
AudioPhraseTrackはだめぽみたいだけど、
PhraseTrack使えば、4音ごとの同期再生はできるよ。
例えばこんな。


PhrasePlayer p = PhrasePlayer.getPlayer();
PhraseTrack pt = new PhraseTrack[p.getTrackCount()];

for(int i=0; pt.length>i; i++)
{
pt[i] = p.getTrack();

pt[i].setPhrase(4音区切りのPhrase);
pt[i].setVolume(PhraseTrack.DEFAULT_VOLUME);//お好みで。
}

//先頭のトラックに他のトラックを同期させる
for(int i=1; pt.length>i; i++)
pt[i].setSubjectTo(pt[0]);

//先頭を再生させると、先にsetSubjectTo()しといたトラックも同時に鳴り出す
pt[0].play();


pt[i]に設定するPhraseは、YAMAHAのSMAFツールでもって、4音刻みでspfを用意すれ。

356 名前:350 [sage] 投稿日:04/03/05 16:37
>>352 353
サンクス。オーディオは1個ですか。ちょっと残念。

357 名前:デフォルトの名無しさん [sage] 投稿日:04/03/07 14:27
質問です。Vodafoneでアプリを作っていたところ、とある実機でエラーが起きました。
サーバーからbyte列を持ってきて、String型に収めて表示するものなのですが、
テスター曰く文字列が長過ぎるのでは?とのこと。

Vodafone実機の中で、String型の長さの限界がある機種ってありますでしょうか?

358 名前:デフォルトの名無しさん [sage] 投稿日:04/03/07 16:47
>>357
あったんじゃないかなあ。
ちなみに、持ってきてるbyte数は?

HTTPConnection con = (HTTPConnection)Conncter.open("URL");
DataInputStream in = (DataInputStream)con.openInputStream();

byte b[] = new byte[(int)con.length()];
in.read(b);
String str = new String(b);

みたいなノリだとしたら、どこの何が例外だしてるかで
随分状況が変わってくるよ。
例外捕まえて表示するダイアログみたいなもの用意すれば
実機でも充分検証できるっすよ。

それと、T06、N04の端末固有バグについては調べた?
どっちも送信側の問題だけど、その結果受信がおかしくなるってのも
ありそうな話だしさ。

359 名前:デフォルトの名無しさん [sage] 投稿日:04/03/07 21:40
V601SHなんですが、SDカードに保存した40KB以上の画像を
StorageConnectionで扱えますか?
どうもルートが「データフォルダ」という位置になっており、
それ以下は40KB以下のファイルしか使えないように制限がかかっているようですが。
何か回避方法ありませんか?

360 名前:デフォルトの名無しさん [sage] 投稿日:04/03/08 21:44
Vodafoneで、PNG画像はIndex形式なら8bitも4bitも使用可能でしょうか?


361 名前:デフォルトの名無しさん [sage] 投稿日:04/03/08 22:07
大丈夫だと思うよ。
ただ、PNGの展開には機種固有のバグが多いから、より詳しくはTips.pdfを
Vodafoneの開発ドキュメントサイトから落としてきて、よく読んどいた方がいい。

362 名前:357 [sage] 投稿日:04/03/09 09:53
>>358
アドバイスどうも。
原因はただのヒープオーバーでした。
文字列でオーバーするほど逼迫してたようです。

363 名前:デフォルトの名無しさん [sage] 投稿日:04/03/09 15:53
>>362
ありがち(w
治ってよかったね。

364 名前:デフォルトの名無しさん [] 投稿日:04/03/10 22:30
>>362
ヒープオーバーって、どーやって検出したの?
mallocみたいなのあるん?

365 名前:デフォルトの名無しさん [sage] 投稿日:04/03/11 03:04
>>364
実際に問題になれば例外飛ぶし、
Runtime#freeMemory()から残りのヒープ量も取得できるよ。

366 名前:デフォルトの名無しさん [] 投稿日:04/03/11 13:09
Vアプリで、実機にダウンロードしたアプリの名前を
日本語にする方法を教えてください。

jadファイルのMIDlet-NameをUTF-8にしたり、
ファイルをUTF-8にしたりしてみたのですが、うまくいきません。

367 名前:デフォルトの名無しさん [sage] 投稿日:04/03/11 13:36
>>366
UTF-8にするので正解。
具体的にはMIDlet-NameがUTF-8になっていれば、
ちゃんとアプリ名でも2バイト文字は表示される。
ただ、16バイト=8文字が限界。
エミュレータが指摘してくれた気もするが、超えてしまってても
中途半端に通ってしまったような記憶もある。
いずれにせよ、規約は守らないと動作が保証されない。

何かの拍子で、化けた状態のファイルをさらに別のエンコードで
保存したとかでもって、文字列自体がぶっ壊れ状態になってるとかも、よくある話。
「最初からファイルをUTF-8で開いて」文字化けしてないか確認してみよう。

詳しくはVアプリ開発ガイドの概要編に載ってるJADファイルの項を読むべし。


それでも駄目なら、MIDlet-1 とかの左端の名前も日本語にすれ。
MIDletの構成が1個だけのアプリでも、こっちを見に行く端末が
ある様な気がして仕方ない。

368 名前:デフォルトの名無しさん [] 投稿日:04/03/11 15:04
>>367
ありがとうございます。
漢字とカタカナはうまくいったのですが、ひらがなだけが駄目なようです。

369 名前:デフォルトの名無しさん [] 投稿日:04/03/11 16:50
ひらがなも解決しました。

370 名前:デフォルトの名無しさん [sage] 投稿日:04/03/13 01:41
沖**司って何者?タダのアフォ?

371 名前:デフォルトの名無しさん [sage] 投稿日:04/03/13 02:10
沖田総司とMIDPって、何か相関があるのでしょうか。

372 名前:デフォルトの名無しさん [sage] 投稿日:04/03/13 02:34
掃除してたら誰かが起きたんだろ

373 名前:332 [sage] 投稿日:04/03/17 04:24
遅まきながら、ラベルの件確認してきました。
5301Tでやっても同じように動作しました。
んで、自作のpaint関数の外にだしたらエミュでも正常動作。

removeCommandとaddCommandを実行するとrepaintが呼ばれるので、
デッドロックが発生してた、って認識でいいんですかね

で、そこまではいいとして。
removeCommandしてaddCommandすると、
どうしてもラベルが一回点滅します。
多分repaintが走ってしまうせいだと思うので、
paintを空実装にしたいんですが、
iAppliでいうgetGraphicsみたいなことは
ezではできないんでしょうか?

374 名前:デフォルトの名無しさん [sage] 投稿日:04/03/17 11:35
Vアプリの圧縮ツール知っている人がいたら教えてください。
Java Blenderみたいなの。

375 名前:デフォルトの名無しさん [sage] 投稿日:04/03/17 13:21
>>373
removeCommandとaddCommandと実行したからといってpaintするとは限らないみたいですよ。(5303と5403ではしないと確認)
ラベルが点滅するのはGraphicsとは別だと思う。addなどが呼ばれるとコマンドの並び替えみたいなの起こるので、
addとremoveの順番変えると並び替え少なくすむ場合もあるけど全く点滅しないのは無理だと思う。

MIDPのCanvasにgetGraphicsは無いけど、
一回paintの引数のGraphicsを適当な変数つけて扱ったら?・・と思ったけど
Graphics exg;
〜paint(Graphics g){
 exg=g;
 略
}
exg.draw〜
これではexgに変更があった時毎回必ず実際の画面も変わるという訳じゃなさそうなので使えないかも。

376 名前:デフォルトの名無しさん [] 投稿日:04/03/17 15:11
vアプリで、
iモードのオブジェクトタグを使ってのHTMLからのアプリ起動のようなことはできますか?

377 名前:デフォルトの名無しさん [sage] 投稿日:04/03/17 17:39
>>374
Vアプリ専用なのは知らないが、このスレに出てきた汎用のツールは
jarg
retroguard
ProGuard

http://imodoki.sourceforge.jp/manual/shrinker.html
によると、ProGuardとjargを組み合わせて使うといいらしい

jargにはバグがあるので注意>>215

378 名前:デフォルトの名無しさん [sage] 投稿日:04/03/17 23:02
>MIDPのCanvasにgetGraphicsは無いけど、
>一回paintの引数のGraphicsを適当な変数つけて扱ったら?・・と思ったけど
>Graphics exg;
>〜paint(Graphics g){
> exg=g;
> 略
>}
>exg.draw〜
>これではexgに変更があった時毎回必ず実際の画面も変わるという訳じゃなさそうなので使えないかも。

公開されてるアプリでに、同じことやってる例は結構あるっぽい…
試した限り、エミュでも何でもこれで動作がおかしくなった事は一度もないけど、
本来これが動くかどうかって、実装依存だよな。

ごく小さなアプリ内で、プログラムが描画部と本体の2つに分かれてしまうのは面倒なんだけど、
潔くあきらめた方がスッキリするよ…。

その際、paint() をカラ実装にするよりは、paint()の中身の書き直しを考える必要があるかも。
ことVアプリに言えることなんだけど、suspend 時に仮想画面の中身が失われてしまうので
仮想画面含めた全画面の再描画の必要があるか、部分書き換えで済むかを
本体側で管理してやる必要が(主に速度面から)出てくるはず。
再描画の必要なし(描画コンテキストに更新が無いのにpaint()が呼ばれた)なら、
何もせずに抜ける、とか仕込んでやろう。

それでも出てくるラベルの点滅を抑えるには、ラベルのaddとremove自体を呼ばない様にするのが一番の薬。

379 名前:デフォルトの名無しさん [sage] 投稿日:04/03/18 00:26
ラベルのチラツキはどうしようもないでしょ。MIDPの仕様が腐ってるせいだから

getGraphicsに関しては、こんな感じじゃ駄目か?
Canvasのチラツキ防止やレジューム時の再描画で手を抜く為に、オフスクリーンイメージを使ったような記憶が…

offscr_img = Image.createImage(120,120);
g = offscr_img.getGraphics();
  :
paint(Graphics onscr_g){
 onscr_g.drawImage(offscr_img,0,0,?);
}

380 名前:デフォルトの名無しさん [sage] 投稿日:04/03/18 01:00
>>378
paint部のGraphicsを保存すれば、paint外でも描画可能。
これは全ての機種で動作確認済み。
paint外で保存しておいたGraphicsで描画を行い、paintを呼び出す。そうするとpaintが呼ばれた瞬間描画が反映される。

ただしi-modeのようにメインスレッドを無限ループさせていると、電源キーによる終了反応がにぶくなる罠。
まぁ鈍くなるだけなんで、はっきりいってスピーディーにアプリつくるならこれはよい方法。

>>ラベルのちらつき
どうしようもない。こればかりはあきらめれ。

381 名前:378 [sage] 投稿日:04/03/18 01:09
>>380
いや、俺もつい手軽さに負けて、そうしたくなる…つーか、そうさせてくれ!と叫びたくなるし、
実際にエミュでも実機でも、普通に動いちゃうんだけどさ。

こうなんていうの?仕様的?に、これって許されるのかしら、と。
そういうレベルの話です。廃。

382 名前:デフォルトの名無しさん [sage] 投稿日:04/03/18 02:18
MIDPドキュメントより。
Canvasのpaintの引数のGraphicsは、paint内部以外では不定な扱いらしい。
Operations on this graphics object after the paint() call returns are undefined.
Thus, the application must not cache this Graphics object for later use or use by another thread.
It must only be used within the scope of this method.

てか、すべての実機で問題ないんなら、オレも使おうかな・・・


ところで、このスレで質問に正確に答えているような人たちみな、実機確認云々の話がすぐに出てくるけど、
それって手元に実機すべてあるってこと?ってことはメーカ・公式サイト系の人も多いんかな。
わたしゃヘタレ日曜プログラマです。

383 名前:デフォルトの名無しさん [sage] 投稿日:04/03/18 09:54
Vアプリ終了時にRecordStoreへの保存を行いたいのですが、「Vアプリ開発ガイド」によると、
C4型端末では「destroyApp()内の処理は実行しない」と書かれています。
電源キー押下による強制終了への対処など、どのように実装すれば良いでしょうか?

384 名前:デフォルトの名無しさん [sage] 投稿日:04/03/18 10:10
>>383
あれ、困るんだよねえ。

強制終了については、あきらめる…が一番かな。
レコードストアへの保存処理は、アプリケーションの終了後に
フラッシュが行われるせいか比較的高速なので、アプリ内の
要所要所でマメに保存処理をすることで、無理やり対処しちゃたよ、漏れは。

385 名前:デフォルトの初心者 [] 投稿日:04/03/18 10:59
携帯のマイクからの入力音声を拾って処理するってできないの?
VodafoneのP5端末なら、音声認識ってできるみたいなんだけど、
認識じゃなくって、音拾うだけって。
そんなのできない?


386 名前:332 [sage] 投稿日:04/03/19 06:39
>>375-382
えーと
・ラベルのちらつきはどうしようもない
・getGraphicsはpaintのGraphicsを使うことで代用可能(仕様上は保障されてない)
・addCommandやRemoveCommandではrepaintは呼ばれない(呼ばれるとは限らない?)
ってことですね。
でも3番目のやつだとエミュでデッドロックっぽい動作が発生した説明がつかない…
エミュだとadd/removeでrepaintが呼ばれるのかな?
その辺は暇になったら検証してみます
ともかくありがとうございました。

>>382
一応他キャリアでは公式もやってます。

387 名前:デフォルトの名無しさん [sage] 投稿日:04/03/19 10:00
>>384
強制終了されても問題ないように作るしかないですか。
とりあえず、対象データが更新されるタイミングで毎回保存処理を行うようにしました。

#そもそも、RecoredStoreって起動時に変数に読み込んで操作するのと、
#直接操作するのとではパフォーマンス的にどれ程の違いがあるんだろ…。
#変数名=レコード名でIDは常に1としているので、構造上は問題ないし。

388 名前:デフォルトの名無しさん [sage] 投稿日:04/03/19 13:17
Phase3.0用ezアプリで使えるpngに
色数(256色以下)問題以外の制限ってあるのでしょうか?

ダウンロードしたpngを
 imageBase = Image.createImage( dData, 0, size );
って感じで、.Imageにしているのだけど、
画像によって、
 Illegal.ArgumentException:srcData:[B@1a4cfaa
と言われます。

直前でdDataを書き出してみたら正常なpngデータだったので
ダウンロードはできている感じなのですが、
例外報告のsrcDataとは異なった値でした。

createImageに入れたときに何か起きている
みたいなのですが・・・。

createImageが通る画像のときはsrcData=dDataになっています。

389 名前:デフォルトの名無しさん [sage] 投稿日:04/03/19 22:58
おはこんばんちわ〜。初めまして。

今J2MEでこんなプログラム作っているんです。
1、ネットで碁を打ってSGFファイルをテキストデータとして保存。
2、メール本文にその内容をコピペして相手にメール転送。
(この時、相手のj-phone携帯にそのV-appli(ソフト)が入っている。)
3、受信した相手側がメールの本文をクリップボード(?)にコピー。
4、受信した相手側がV-appli(コレのこと)を起動。
5、V-appliがクリップボード(?)を読み込んで、表示。
要は携帯版SGFビューワです。

クリップボード(?)を読み込む
クラスやメソッドのことがいくらググっても出てこないんです。
どなたかJ2MEで携帯のクリップボード(というのでしょうか?)
を読み込むjavaソースを教えてください。よろしくお願いします。

390 名前:デフォルトの名無しさん [sage] 投稿日:04/03/19 23:57
Vアプリを作ってみたいんですが
参考図書とかありますか?

391 名前:デフォルトの名無しさん [sage] 投稿日:04/03/20 01:39
>389
JSCL1.2.0(P5型端末)限定なら、メールデータを直接扱えるようですが。

>390
Vアプリの基本。
ttp://www.dp.j-phone.com/dp/tool_dl/java/tech.php

MIDPでできることをきっちり学習したいならこの本。
アスキー出版局「J2ME ワイヤレスJavaプログラミング」
ttp://www.ascii.co.jp/pb/ant/j2me/

とりあえず何か動く物を作りながら…ならこの本。
技術評論社「Java2ME MIDP ゲームクリエーターズガイド」
ttp://www.gihyo.co.jp/books/syoseki.php/4-7741-1470-7

392 名前:デフォルトの名無しさん [sage] 投稿日:04/03/20 07:27
>>389
クリップボード機能は経由Javaでは使えない。

393 名前:デフォルトの名無しさん [sage] 投稿日:04/03/20 09:00
>388
制限はないハズ。
それはエミュレータのピープサイズが足りてないんだと思う。
変更してみ。俺もそれで一時間ぐらいはまってたから。

394 名前:デフォルトの名無しさん [sage] 投稿日:04/03/20 09:54
>>393
制限無しなのですね、ありがとうございます。
スッキリした。

エミュレータは
JAVA_HEAP: 2048000
に設定してあります。
240*240*8の画像を数枚生成するぐらいなので、
多分足りていると思うのですが……

A5403CAでも試したのですが、
画像一枚分だけ多くImageが作れて同じエラーが出る_| ̄|○

395 名前:デフォルトの名無しさん [sage] 投稿日:04/03/20 14:21
>>393
ガベージコレクタ、してるよね?
System.gc()
ってやつ。一枚生成するごとにしたほうがいいと思うよ。
あと画像はロードすると思った以上にメモリを食うから要注意だよ。
途中まで作れるってトコをみるとピープだと思うんだけどなぁ。

396 名前:かぜたそ [sage] 投稿日:04/03/20 22:42
>>391
ありがとうございます
本は早速注文してみました

公式からエミュを落としてインストールしてみたんですが
起動しようとすると一瞬DOS窓が出てすぐ消えるだけでぜんぜん起動できませんorz

便乗ですが
vodafoneの独自機能(バーコード読み取り等)を扱う場合は
コンパイラはどうなるんですか?エミュの中に組み込まれてるんですか?

397 名前:デフォルトの名無しさん [sage] 投稿日:04/03/20 23:45
>>396
Vアプリ独自のAPIは「j-phone-sdk\lib\stubclasses.zip」に全部入ってる。
コンパイル時のクラスパスに指定すればちゃんとコンパイルできるよ。
もっとも、MIDP-1.0基準で作ればJ2MEWTKでビルドもパックもチェックできるし、
ezの方にも簡単に移植できるけどね。

ttp://homepage1.nifty.com/cotton100/jphonejava.htm
↑ちと日付が古いが、(1)〜(5)までが参考になると思う。
開発環境集めたら「midp 入門」あたりでググってみるとよさげ。

398 名前:デフォルトの名無しさん [sage] 投稿日:04/03/21 11:52
>>395
生成するごとガベージコレクトしてみたのですが、
やはりダメでした。

で、データを少し減らし、
リソースに収まるようにして画像生成を試したところ、
IOException例外でInsufficient memory メッセージが出ました。
395のいうとおり、メモリ問題だったようで。

Imageを一気に作り貯めせずに
必要なときに生成していく方法に切り替えます。
ありがとうございました。

399 名前:ディフォルトの名無しさん [] 投稿日:04/03/21 12:48
338 :261 :04/03/21 00:07 ID:N1qHKmT4
よろしくお願いします。yournet規制まだぁー?(チンチンAA略
---------------------------------------------------------------------------
【板名*】 プログラム技術
【スレ名*】 CLDC+MIDP+携帯電話用Javaスレッド part 2
【スレのURL*】 http://pc2.2ch.net/test/read.cgi/tech/1070858996/
【名前】389
【メール欄】sage
【本文*】↓
>>391さん
情報ありがとうございます。

詳しくググッてググッてググりまくったところ、
寝太郎 the Webさんの所で解決しました
なんて素晴らしいページなんだと感激
携帯アプリ作ってる人は行って見ると良いと思います。


400 名前:デフォルトの名無しさん [] 投稿日:04/03/22 20:29
Phase3.0の広い画面(240x268)を使うアプリを
うまくエミュレートする方法ってありますか?


401 名前:400 [] 投稿日:04/03/22 20:31
EZアプリの話です。

402 名前:デフォルトの名無しさん [sage] 投稿日:04/03/22 21:54
VアプリやEZアプリやでImageを生成するときに、
大量にメモリを食うって聞いたのですが、
生成し終わったImageのサイズは、
DIB換算した画像データサイズと同等ぐらいになりますか?

403 名前:デフォルトの名無しさん [sage] 投稿日:04/03/22 23:16
>>400
いっそエミュあきらめる、ってのはだめ?ケーブル使えばパケ料要らないし。
単にサイズだけの問題なら、フォントサイズさえ取得すればだいたい予想できると思います?
120×134でエミュのフォントサイズも実機の半分になるようにしたら、文字くらいしか使わないアプリなら・・。

>>402
Imageがどうメモリ使うかは機種によるみたいです。
フルカラーのファイルでもインデックス(256)くらいに落とされたりする可能性もあると思います。
5403ならヒープ1.6Mで画面の10倍くらい使えたからピクセルあたり2バイトかな?


404 名前:デフォルトの名無しさん [sage] 投稿日:04/03/23 00:11
>>400
au専用の命令を使ってなければ
ボーダのエミュでいけるかと。

405 名前:デフォルトの名無しさん [sage] 投稿日:04/03/23 10:43
質問です
合計、約6.5KBのPNG画像を10枚ほどresフォルダに入れてビルドしたところ
画像を入れる前のjarが約27KB、
入れた後のjarが約35KBになりました
計6.5KBの画像を入れて8KB増えたのですが・・

どうしてなのでしょう・・・


406 名前:デフォルトの名無しさん [sage] 投稿日:04/03/23 11:01
zipアーカイブすると何でもサイズが小さくなるハズなのか。
便利な世の中になったものだ。

407 名前:デフォルトの名無しさん [sage] 投稿日:04/03/23 11:09
もともとZIP圧縮してあるPNGを無駄に再圧縮する上、
ヘッダーやらなにやらつけまくるのだから重くなって当たり前。

408 名前:405 [sage] 投稿日:04/03/23 11:21
なるほど・・
>>406さん,407さん
わざわざありがとうございました
勉強します


409 名前:400 [] 投稿日:04/03/23 16:15
>>403
>>404
レス遅れてごめんなさい。
とりあえずボーダフォンのエミュでトライしてみます。
ありがとうございました。

410 名前:402 [sage] 投稿日:04/03/23 19:49
>>403
どうもです。うちの実機も5403だったので調べたところ、
やはり、おおよそ1ピクセルあたり2バイトでした。

これがエミュだと4バイト弱食っているようでした。
実機テストは大事だと実感。

411 名前:かぜたそ [sage] 投稿日:04/03/23 20:44
>>397
アドバイスありd

相変わらずエミュが起動しませんOTL
なぜ。。。。
ヴォーダフォンから落としてインスコするだけなのになんで起動しないんだろう。。。。。

412 名前:デフォルトの名無しさん [sage] 投稿日:04/03/23 22:01
起動しない…というのとは少し違ったが、うちも起動の度に必ずサウンドレイヤが死んでたぞ。
ある日突然治っちまって驚いた。

413 名前:デフォルトの名無しさん [sage] 投稿日:04/03/24 01:27
なんか作って面白い、または便利なアプリってないかなぁ・・


414 名前:デフォルトの名無しさん [sage] 投稿日:04/03/24 06:59
>>413
Webブラウザ作れ。
需要はあると思う。

415 名前:デフォルトの名無しさん [sage] 投稿日:04/03/24 09:03
>>413
RSSリーダ。需要は大きいかと。

416 名前:デフォルトの名無しさん [sage] 投稿日:04/03/24 11:41
四択か五択ぐらいのクイズのソースってどっかにあります?

417 名前:デフォルトの名無しさん [sage] 投稿日:04/03/24 18:02
>411
 うちもEZアプリエミュ、Vアプリエミュ共に動かなかったけど、
原因はJAVAがうまく動いてないような感じだった。
起動せずにアイコンを右クリック・プロパティ、
リンク先の部分の
-jar前を変えると、うまく動いた。自分でインストールしたj2se(だっけ?)のアドレスに変える。
↓こんな感じ。
「c:\jdk1.3.1\bin\javaw.exe(←ここまでを変える) -jar jdmidp.jar」
的はずれなこと言ってたらごめん。


418 名前:かぜたそ [sage] 投稿日:04/03/24 20:42
>>417
ありがとうございます
試しにjavaw.exe経由でjdmidp.jarをファイルを開いたら英語表示で無事開けました

ファイルの関連付け関係がおかしいみたいですね。。。。

419 名前:デフォルトの名無しさん [] 投稿日:04/03/30 14:19
J2ME Wireless ToolKitで、ボーダフォンのC4型アプリをコンパイルしようとしているんですが通りません・・・。
C4用のstubclasses.zipを読めてないからだと思うのですが、どうすればよろしいのでしょうか?

420 名前:デフォルトの名無しさん [sage] 投稿日:04/03/30 15:31
>>419
>>419
俺は諦めたw
設定ファイルで何とかなりそうなんだが、面倒くさいし、アレの出来がよくないので、
Antとかmakeとか使う方が早いと思われ。

421 名前:デフォルトの名無しさん [sage] 投稿日:04/03/30 22:44
>>419
stubclasses.zipでググって自分で調べてみよ。
他のツール使わない解決方法はあるぞ。

422 名前:デフォルトの名無しさん [sage] 投稿日:04/03/31 05:37
>>419-420
このへん
http://www2s.biglobe.ne.jp/~yuuki_ki/java_basic2.htm

オレは、面倒なんでclasspath環境変数に設定してる。


423 名前:デフォルトの名無しさん [sage] 投稿日:04/03/31 06:44
 画面より大きい画像を読み込むのって、特に問題ないですか?
メモリ不足になる場合をのぞいて。

424 名前:419 [sage] 投稿日:04/03/31 08:30
>>420-422
ありがとうございます!
結局、WTKは使わず、コンパイル→事前検証→jarのバッチ処理を自分で書いて解決しました。
WTKを使えないのは面倒ですが、しょうがないですね・・・。

425 名前:デフォルトの名無しさん [] 投稿日:04/04/01 00:33
FixedPointでsinの使い方を教えてくれーー!!

cで言うところの、y=sin(x*rad)みたいなのって、どう書くもんなの?
y=FixedPoint.sin(xr);と書くとsinがstaticぢゃないぞーとか言われたし。。。


426 名前:デフォルトの名無しさん [sage] 投稿日:04/04/01 00:39
>>425
いちいちあげないと質問も出来ないのかお前は?
まず>>1を読め。
話は、それからだ。

427 名前:デフォルトの名無しさん [sage] 投稿日:04/04/01 02:00
>>423
よみこむのはだいじょうぶ。

ただし画面に表示できるかは、また別問題。

428 名前:デフォルトの名無しさん [sage] 投稿日:04/04/01 02:15
>>425
その調子だと、FixedPoint以外の使い方にも問題が出てませんか?
まずはJAVADOC嫁って感じだが、FixedPoint.sin()は、staticじゃないってのは、そのまんま。
少なくとも

y = y.sin(xr);

なら通るだろうに。
…なんでsin()がstaticじゃないのかは理解に苦しむが、単にオーバーヘッド考えてのことなんだろうな。
つーか初めてVodafoneのFixedPoint周辺のドキュメント読んだが、これ…酷いな…。

429 名前:デフォルトの名無しさん [sage] 投稿日:04/04/01 23:38
>>427
 機種によっては表示できないのもあるのかなーって思ったんですが、
やっぱりあるんですかね。A5401だと、QVGAが出ませんでした。
A5404Sでは出ました。機種によって扱える大きさが決まってるんでしょうかね。
一つにまとめた方が容量少なくなるから、よくやるんですが、まずいのかな・・。

430 名前:デフォルトの名無しさん [sage] 投稿日:04/04/02 16:25
VアプリのC4用Canvas3DのsetClipRectの幅と高さの指定っておかしくない?
xとyが0じゃないと指定したサイズでクリッピングされないのだが。
俺だけ?

431 名前:デフォルトの名無しさん [] 投稿日:04/04/03 10:40
>>428
レスサンキュー
Javadocを読んでも漏れには意味不明でさっぱりだったので
質問させて貰いました
staticじゃない時点で、ウワーンでした
で、y=y.sin(xr)でコンパイルは通ったけど、結果が変かも
そもそも漏れのsinの使い方が変なのかもしれんので
ちと算数の勉強してきまつ

432 名前:デフォルトの名無しさん [sage] 投稿日:04/04/03 11:33
ありがちなミスとしては、FixedPointのコンストラクタに渡すのは、
整数の65536倍の数であるということとか。

433 名前:デフォルトの名無しさん [sage] 投稿日:04/04/03 20:51
VアプリのC4型で
データフォルダから画像ファイルを呼び出して編集、保存等はできますか?

434 名前:デフォルトの名無しさん [sage] 投稿日:04/04/03 23:17
>>433
仕様上無理です。

435 名前:デフォルトの名無しさん [sage] 投稿日:04/04/07 18:34
高レベルAPI(Form)で通信の開始時に、StringItem.setText()で
テキスト表示したいのですが、再描画されずに通信が開始されてしまいます。
高レベルAPIにおける再描画の条件について、どなたかご存知ありませんか?
あるいは、参考資料はないでしょうか?

436 名前:デフォルトの名無しさん [sage] 投稿日:04/04/08 01:50
>>435
If the Form is visible on the display when changes to its contents are requested by the application,
the changes take place immediately.
That is, applications need not take any special action to refresh a Form's display after its contents have been modified.
とか書いてあるから、特に何もしなくても良い気がする。

もしダメなら、ItemStateListener使うとか。

437 名前:デフォルトの名無しさん [sage] 投稿日:04/04/08 03:12
>>435
commandAction()とかで通信なんかしてないよね?
スレッドを立てて、そっちで通信してるんだよね?

438 名前:435 [sage] 投稿日:04/04/08 10:33
commandAction()で「通信開始」と表示した後、サーバとHTTP通信を行い、
Exception発生または受信したデータが不正であれば「失敗」と表示し、
そうでなければ「成功」と表示しているのですが、まずいでしょうか…。

439 名前:437 [sage] 投稿日:04/04/08 10:48
>>438
commandAction()の中で、StringItemの変更とHTTP通信の両方をおこなったらダメよ。

commandAction()中のForm操作は、commandAction()を抜けないと反映されない。
なので、スレッドを別に作って、そっちにやらせないと期待通りに動作しない。

440 名前:デフォルトの名無しさん [sage] 投稿日:04/04/08 10:55
というか、commandActionとかのリスナーで時間のかかる処理全般をしない方がよい。

441 名前:435 [sage] 投稿日:04/04/08 11:21
>>439
ありがとうございます、そういうことでしたか。
iアプリの方ではsoftKeyReleased()内で同様の処理を行い、期待通りの
動きをしていたのですが、仕様が違うのでしょうかね。
通信は別スレッドにして、結果の表示もそちらから行うようにしてみます。

442 名前:かぜたそ [sage] 投稿日:04/04/12 22:46
1テキストボックスから
getText()で値を取り出した場合返り値はstring形なんですよね?
たとえば
a=TB1.getText();
b=TB2.getText();
c=a*b;

と言う感じではできないんですよね
この場合c=(int)a*(int)b;
って感じで良いんですかね?

初歩的な質問でスマソ

443 名前:デフォルトの名無しさん [sage] 投稿日:04/04/12 23:59
>>442
それだとコンパイルすら通らんだろう。
ここではInteger#parseInt(String s) にてintに変換するのが正道。
上の場合は

a=TB1.getText();
b=TB2.getText();
c=Integer.parseInt(a)*Integer.parseInt(b);

aおよびbに数字や - 以外が入ってると
NumberFormatExceptionが投げられるから注意がいるっすよ。

つーわけで、詳しくはjavadoc嫁。

444 名前:デフォルトの名無しさん [sage] 投稿日:04/04/13 22:59
TextField.NUMERICいれときゃ大丈夫。たぶん。

445 名前:デフォルトの名無しさん [] 投稿日:04/04/14 10:58
VodafoneのC4端末でサーバからテキストを取得させたいんですが
エミュ上ではうまくいくものの実機だとIOExceptionが出てしますうんですが
cgiの方は↓のような感じで

print "Content-type: text/vnd.sun.j2me.app-descriptor\n\n";
print "APDATATEST";

アプリの方では↓のように受信させてます。
HttpConnection connection = (HttpConnection)Connector.open(url, Connector.READ, true);
connection.setRequestMethod(HttpConnection.GET);
InputStream in = connection.openDataInputStream();
// 読み捨てる
byte[] headbytes = new byte[6];
int size = in.read(headbytes);

ByteArrayOutputStream bout = new ByteArrayOutputStream(1000);
byte[] bytes = new byte[1000];
while((size = in.read(bytes)) > 0)
  bout.write(bytes, 0, size);
in.close();
connection.close();

String Text = bout.toString();

エミュ上では問題ないんですが、どこかマズイ点などありますでしょうか?

446 名前:デフォルトの名無しさん [sage] 投稿日:04/04/15 05:24
ゲートウェイではじかれてるんじゃない?
コンテントタイプを変えてみたら?

447 名前:デフォルトの名無しさん [sage] 投稿日:04/04/17 19:21
MIDPの読みは「みっどぴー」でよろしいか?

448 名前:デフォルトの名無しさん [sage] 投稿日:04/04/17 23:39
ださっ…

449 名前:デフォルトの名無しさん [sage] 投稿日:04/04/17 23:45
MID-Profileだからなあ。

450 名前:デフォルトの名無しさん [sage] 投稿日:04/04/18 02:20
MIDPをまいどぷーと呼ぶスレ

ってスレ立ててもいい?

451 名前:デフォルトの名無しさん [sage] 投稿日:04/04/18 16:47
エム愛ディーピーと普通に読む

452 名前:デフォルトの名無しさん [sage] 投稿日:04/04/18 19:17
みどぅぷ
と読んでました。

453 名前:デフォルトの名無しさん [] 投稿日:04/04/19 16:40
VホンのP型端末ってスプライトの数に制限ありますか?

454 名前:デフォルトの名無しさん [] 投稿日:04/04/19 17:44
>>453
256個
しかし、ウィザードリィ#1の文字がスプライトだとすると、
他の画像はどうやって格納してるんだ?
ひらがなカタカナアルファベットでゆうに150くらい行くのだが・・・

455 名前:デフォルトの名無しさん [sage] 投稿日:04/04/19 17:51
全部スプライトにする必要はないし、スプライトのデータを変更すればいいだけのような。

456 名前:デフォルトの名無しさん [sage] 投稿日:04/04/19 20:23
むしろスプライト使わないし。

457 名前:デフォルトの名無しさん [] 投稿日:04/04/20 01:08
>>456
例えば、縦シューとかで背景スクロールさせるとき、スプライトのマップチップを
並べてスクロールさせてるけど、他に良い方法あるかな?

458 名前:デフォルトの名無しさん [] 投稿日:04/04/20 02:16
キーの押しっぱなしを判定するには
keyPressed
keyReleased
を使うしかないのでしょうか。
keyRepeatedはあまりにも遅いんですが・・・

459 名前:デフォルトの名無しさん [sage] 投稿日:04/04/20 02:39
>>458
拡張API使うとか。

460 名前:デフォルトの名無しさん [] 投稿日:04/04/20 04:19
P型のスプライトって特に256個って指定ないんじゃ・・・
少なくとも開発ガイドには上限の表記がない。

461 名前:デフォルトの名無しさん [sage] 投稿日:04/04/20 11:46
みなさん開発環境は何を使用しているのですか?

ずぼらな私は、Eclipseを使用しようと苦戦中です。
どこかのサイトからVodafoneプラグインをインストールしたのはいいのですが、
コンソールにはコンパイルsuccessfullとでるにもかかわらず、
エミュレータで実行しようとすると、
エミュ自体は立ち上がるのですが、
何も表示されないまま、
すぐにウインドウを閉じてしまいます。

XML,Antの知識が殆どないことが
原因でくだらんミスな感じがする。

それともjargが良くないのか?

やっぱりコマンドプロンプトにもどれってことだよな・・・

462 名前:デフォルトの名無しさん [sage] 投稿日:04/04/20 12:52
やっぱり秀丸+コマプロだなぁ。
デバッグはボーダ公式エミュ。

463 名前:デフォルトの名無しさん [sage] 投稿日:04/04/20 13:50
>>460
javadocには書いてるぞ。
SpriteCanvasのコンストラクタ

464 名前:デフォルトの名無しさん [sage] 投稿日:04/04/20 15:47
>>461
EclipseのVアプリ用プラグインでコーディングして、ビルドはWTK使ってる。
拡張API使う場合はEzのツールでビルド。

465 名前:デフォルトの名無しさん [] 投稿日:04/04/20 16:35
>>461
わしゃPeggyProのマクロじゃ。
でも、エミュレータ起動はVアプリエミュを手動で。


466 名前:デフォルトの名無しさん [sage] 投稿日:04/04/20 16:38
Vアプリだけど、スプライトのデータって、どうやって持たせてる?
ベタデータで持たせてると、圧縮されること考えてもやたらファイルサイズが
でかくなりそうなんだけど・・・


467 名前:デフォルトの名無しさん [sage] 投稿日:04/04/20 16:44
1画素あたり1バイト。
スプライト一つあたり8x8=64なので、64バイト。
最大値の256個あるとして、16384バイト=16Kバイト


468 名前:デフォルトの名無しさん [sage] 投稿日:04/04/20 18:21
>>466
余計なこと考えずにベタでもってる。
どうせZIPの餌食だし、ちゃんと束ねとけば呆れるほど縮まるよ。

469 名前:デフォルトの名無しさん [] 投稿日:04/04/20 22:03
>>458
Vなら、DeviceControlerから情報を取得して
別に作ったキーバッファに状態を保存しておけば?
ついでに押されてる時間も保存しとくと便利。

470 名前:デフォルトの名無しさん [sage] 投稿日:04/04/21 02:37
>>466
オレも、生のファイルでそのまま保持。
zipで1/3くらいになってるから、まぁこれで十分かなっと。
画素数がしれてるし、工夫したところでそこまで小さくなるとも思えん。
http://www.saturn.dti.ne.jp/~npaka/kvm/javapress/coolskiers/genkou.html
のSpriteConvertを使ってる。


コマンドラインから、jadファイル指定してVアプリエミュを起動とかできないの?
UEI仕様とかワカラン

471 名前:デフォルトの名無しさん [sage] 投稿日:04/04/21 06:38
調べてみた。
emulator.exe -Xdescriptor:****.jad
で起動出来るみたいだなぁ。

472 名前:デフォルトの名無しさん [] 投稿日:04/04/21 16:35
超初心者でつ。教えてください。
データベースを検索し結果を表示する機能について調べていました。
通常携帯からURLを打ち込んで、例えばホテルの予約案内を検索する場合は
Javaアプリをダウンロードして実行しているわけではないですよね?
あれはJavaで作成したものではないんでしょうか?
データベース検索はサーブレット+JDBCがイイみたいな解説を
見たものですから・・・
よろしくおねがいします。


473 名前:デフォルトの名無しさん [sage] 投稿日:04/04/21 16:38
>>472
それは、サーバー上で動いているので、携帯電話と直接関係はない。
所詮フロントエンドくらいの機能しか持たせられないよ。

474 名前:472 [sage] 投稿日:04/04/21 16:50
>>473
ありがとうです。
そのフロントエンドをJavaで作成しVアプリにするメリットって
あるんでしょうか?
ふつうにURL打ち込んで接続するのと違いがあれば教えてください。

475 名前:デフォルトの名無しさん [sage] 投稿日:04/04/21 17:01
>>474
モノによるけどなあ。。。
グラフィカルな表示ができる(ように作れる)とか、Webのフォームで扱いづらいような検索フォームができる(ように作れる)とか、


476 名前:472 [sage] 投稿日:04/04/21 17:19
>>475
ありがとうでつ。

477 名前:470 [sage] 投稿日:04/04/23 01:25
>>471
thx、見事に起動しますた、しかもエミュコントロールパネルなしのエミュ窓のみで。
こりゃ便利、Makefileオンリーでいけそう。
*.jadに関連づけもしときますた。
エロい人、ホントにありがと

478 名前:デフォルトの名無しさん [sage] 投稿日:04/04/26 08:03
端末ごとの画面解像度の違い、どうやって吸収してる?

479 名前:デフォルトの名無しさん [] 投稿日:04/04/26 11:22
>>478
解像度ごとに違うアプリ作る。

480 名前:デフォルトの名無しさん [] 投稿日:04/04/26 16:27
どっかで、アプリのコンテストやってないかな?

481 名前:デフォルトの名無しさん [] 投稿日:04/04/27 17:16
EZアプリ Phase3ではフォルダーへの書き込みアクセスも可能になったそうですが、
SDとかメモリーカードへも読み書きできるのでしょうか?

たとえば、
String url = "datafolder://filename";
DataFolderConnection conn = (DataFolderConenction)Connector.open(url, Connector.READ);

で、メモリーカード用のurlがあるとかなのでしょうか?

482 名前:デフォルトの名無しさん [] 投稿日:04/04/29 20:53
今、本とか見ながら独学でJAVAを勉強しています。
画像ファイルを読み込んで、表示するという単純なプログラムなのですが、
WTKのエミュでは実行できるのですが、Vodaエミュ(P5)ではIOエラーがでます。
どこが間違っているのでしょうか?ファイルが読みこめてなさそうなんですが。
[TEST0004.java] import省略
public class TEST0004 extends MIDlet {
public TEST0004() {
Display.getDisplay(this).setCurrent(new DrawCanvas()); }
protected void startApp() throws MIDletStateChangeException {}
protected void pauseApp() {}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {}
}

[DrawCanvas.java] import省略
class DrawCanvas extends Canvas {
private Image img;
DrawCanvas() {
try {
img= Image.createImage("/7.png");
} catch (IOException e) {
e.printStackTrace(); }}
protected void paint(Graphics g) {
g.setColor(0x00FFFFFF);
g.fillRect(0,0,getWidth(),getHeight());
g.drawImage(img,0,0,Graphics.TOP|Graphics.LEFT); }

}

483 名前:デフォルトの名無しさん [sage] 投稿日:04/04/29 21:05
>>482
WTKで実行できて、Vodaのエミュで実行できないのは、コンパイルのミスが大半。

484 名前:デフォルトの名無しさん [] 投稿日:04/04/29 21:25
>>483
ありがとうございます。
コンパイルミスですか。
試行錯誤してみます。


485 名前:482 [sage] 投稿日:04/04/29 22:01
色々見てるうちに、
読み込むファイルの拡張子が、
JAVAファイルではpng
ファイル名ではPNG
だからでした。
報告まで


486 名前:デフォルトの名無しさん [sage] 投稿日:04/05/08 06:33
Voda(P5)で初開発やってるんだが、
コンボBOXのサンプルないですか?

全くわからなく困ってます。

487 名前:デフォルトの名無しさん [sage] 投稿日:04/05/10 18:52
>>799
256kアプリver.2って・・・

488 名前:デフォルトの名無しさん [sage] 投稿日:04/05/16 02:33
某BBSとマルチで失礼します。

現在ezplus(Phase3対応)のアプリを開発しているのですが、
データストレージ、またはダウンロードどちらかの利用に際してバグが発生してしまいます。

データストレージに読み込んだ画像が、エミュレータでは表示できるのに対して、
実機では表示できないという症状です。
というのも、画像が正確に読み込めていないようなのです。

・KJXに予め含まれたリソースは、エミュレータ・実機とも問題無く表示できます。
・ストリームの入出力処理はDataInputStream、DataOutputStreamクラスを使用しています。
・ファイルをダウンロードする際、数十個ある画像ファイルを20KBごとのdatファイルに分け、
6回に分けてダウンロードしています(data0.dat〜data5.dat)。
・ストレージには最初の0〜9バイトに必要な情報を格納し、
10バイト目から画像データのバイトが格納されます。
・画像ファイルの総容量は現時点で約120KBです。
最終的には180KBくらいまで膨れ上がる予定です。
・画像の読み込みはImage.createImage(byte[] b, int off, int size)を用いています。
エミュレータでは表示されるので、offの位置などが間違っていることはないと思います。

上には全く関係のない見当違いのことも書いているかもしれませんが、
何卒ご教授よろしくお願いします。


489 名前:デフォルトの名無しさん [] 投稿日:04/05/17 14:52
Phase3のSH-Mobile搭載機種でMP3デコードコード書いて
MP3再生とか出来ないかな?

490 名前:488 [sage] 投稿日:04/05/17 15:36
>>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バイトずれていた。
・・・
------------------------------------------------------
といった状態です。

491 名前:489 [sage] 投稿日:04/05/17 16:07
>>490
うぉーーまじでやってくれるんですか?
A5403CAあたりがCPU的に最強だと思います。
閉じた状態でもアプリは動き続けるようですね。
ただし、その場合はサブディスプレイが点灯しっぱなしになるので
すぐに電池がなくなります。

ヘッドフォン付けてステレオでminiSD内のMP3が聞けたりしたら
いいと思います。協力できることがありましたらどうぞ。

492 名前:デフォルトの名無しさん [sage] 投稿日:04/05/17 17:25
>>488-491
面白いことになってるな。早く気づくといいね。

493 名前:489 [] 投稿日:04/05/17 17:27
自分はJAVAのコーディング知識0です。
UNIX系の知識、ちょっと高度なWindowsの知識しかないです。
果たして役に立てるのか。。

とりあえず488氏に期待age

494 名前:デフォルトの名無しさん [sage] 投稿日:04/05/17 17:31
ライブラリ仕様を隅から隅まで見てみよう。

495 名前:デフォルトの名無しさん [sage] 投稿日:04/05/17 17:52
>>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へのレスだと勘違い
が真相じゃないか?

496 名前:デフォルトの名無しさん [sage] 投稿日:04/05/17 18:02
でも
MP3ですか、、、やってみます。
ってかいてるじゃん。

497 名前:デフォルトの名無しさん [sage] 投稿日:04/05/17 18:26
本気でMP3考えてたけど、
も し か し て
どうあがいてもminiSD内のMP3データ読めない?

498 名前:デフォルトの名無しさん [sage] 投稿日:04/05/17 20:14
>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 名前:デフォルトの名無しさん [sage] 投稿日:04/05/18 13:54
>>499
jadファイルの設定

501 名前:デフォルトの名無しさん [sage] 投稿日:04/05/18 20:29
【MD】 MP3プレイヤー 作成スレッド 【イラネ】
http://hobby6.2ch.net/test/read.cgi/appli/1084877675/

502 名前:499 [sage] 投稿日:04/05/19 01:58
>>500
MIDlet-Application-Security: ですか?
入れてみましたが変わりなし、そもそもFileUtilityはセキュリティ対象クラス・メソッドに指定されてませんし・・・
mmfならgetMediaPlayerから再生できるようなんですけど・・・

で、いろいろドキュメント読んでみたんですけど、
ひょっとしてFileUtility#playは動画再生のみサポートだったりします?
(開発編にあやむやに書かれてたり、Zentekサンプルがそもそも動画のみのものだったりで)

503 名前:デフォルトの名無しさん [sage] 投稿日:04/05/19 20:50
ezplusで定期的に自動でメール送信を行うアプリを作成中です。
IMAP4MailConnectionを使用して送信しているのですが、送信する時に
確認画面が出て停止してしまいます。
この画面を出さずに送信する方法があれば教えて頂けませんか?


504 名前:デフォルトの名無しさん [] 投稿日:04/05/19 22:39
>>503

迷惑メール送信業者の悪徳協力者ですか?
死んで下さい。


505 名前:デフォルトの名無しさん [sage] 投稿日:04/05/19 22:49
迷惑メールより、MP3再生が壁にぶつかっています。
たすけてください。

問題1 5MB級のファイルをロードできるのか。
問題2 どうやってスピーカーに吐き出すか。

506 名前:503 [sage] 投稿日:04/05/20 00:04
>>504
おっしゃる通り、確認なしにメール送信を許せば迷惑メールに悪用できてしまいますね。
ただ、GPSの位置情報を定期送信したかっただけなんだけど、IMAP4MailConnectionは諦めます。
HttpConnectionでサーバー経由させるか・・・。

>>505
昔、Windowsでデコーダ作った事がありますが、仮に5MBのMP3ファイルを読み込めても
PCM取り出してそれを吐き出すデバイスを直接いじれる手段がないのでは?

ただ、Phase3から
・SMAF Humanoid Voiceデータ再生 他
って書いてあるからADPCMなら直接吐き出す方法があるんだと思います。
Voda用のニセ着うた変換ソフトを作りましたけど、正直、8KHzで4Bit程度じゃ
使う気もしないと思いますがw





507 名前:デフォルトの名無しさん [sage] 投稿日:04/05/20 00:20
>>506
レスどうもです。
ここは、焦点をPhase3に絞ったとしてもPCMを直接出力する手段が問題ですね。
スピーカーは糞としてもステレオヘッドフォンならそれなりの音質が得られると
思うので、何とかならないかとドキュメントあさり中です。

SMAF Humanoid Voiceってのは本体のROMに人間の声が事前に入っていて
それを再生するだけじゃなかったでしょうか?(よく覚えてないです

508 名前:デフォルトの名無しさん [sage] 投稿日:04/05/21 08:34
>>507
PCMアウトは無いよ。HVはデータをあらかじめ用意しとくか、スクリプトを使うかのどっちか。

509 名前:デフォルトの名無しさん [sage] 投稿日:04/05/21 19:18
まとめると、いくらがんばっても実現不可能ってことか?

510 名前:508 [sage] 投稿日:04/05/22 13:47
デコードして波形を音階に変換してHVスクリプトにすれば不可能じゃないけど、現実的じゃない。

511 名前:508 [sage] 投稿日:04/05/22 13:49
デコード→SMAFでもOK。


512 名前:デフォルトの名無しさん [sage] 投稿日:04/05/22 14:39
とりあえず、外部メモリからのロードは解決したみたいだが
>>511さんが言う方法って音質悪くならないかな?

513 名前:デフォルトの名無しさん [sage] 投稿日:04/05/23 23:25
ezplus JDK1.3.1推奨ってなってますが、JDK1.4つかっても問題ないですか?
文字列の正規マッチングとか、JDK1.4にいろいろ使いたい機能があるので、出来たらJDK1.4
使いたいので。

514 名前:デフォルトの名無しさん [sage] 投稿日:04/05/23 23:46
>>513
ここで聞くことじゃない。auの技術支援サイトで質問しる。
推奨でないバージョン使うんなら何か不具合が起きても
誰もサポートできないってことくらいは当たり前に受け止めとけー。

515 名前:デフォルトの名無しさん [sage] 投稿日:04/05/24 00:07
>>513
CLDC+MIDPで正規表現なんて使えないと思うが・・・
自分でライブラリなり取ってきてkjxに入れれば使えるだろうけど。

516 名前:デフォルトの名無しさん [sage] 投稿日:04/05/24 03:38
しかし、ドキュメントでJDK1.3.1推奨といいつつも、KJXツールのデフォルトパスは
JDK1.4 のものだったりする。

517 名前:デフォルトの名無しさん [sage] 投稿日:04/05/24 21:59
>>512
だからPCMアウトはねーつってんだろが。
音だしたきゃ>>510>>511の方法しかねーんだよ。
ちなみに、データフォルダやSDからファイルを読む方法もねーんだよ。

518 名前:デフォルトの名無しさん [sage] 投稿日:04/05/25 10:59
>>517
ファイル読み込めるし書き込めるよ

519 名前:デフォルトの名無しさん [sage] 投稿日:04/05/25 12:34
>>518
やり方教えて。

520 名前:デフォルトの名無しさん [sage] 投稿日:04/05/25 13:21
miniSDも読み書きできる。

521 名前:デフォルトの名無しさん [sage] 投稿日:04/05/25 23:11
V-Appliの開発したいんだけどeclipseでどうやって設定したらいいのか全然わかりません・・・

522 名前:デフォルトの名無しさん [sage] 投稿日:04/05/26 01:02
質問です。
iアプリとVアプリでの違いというのかな。
そういうのをまとめてるサイトとかってありますか?
移植等は簡単に出来るんですか?

523 名前:デフォルトの名無しさん [sage] 投稿日:04/05/26 18:08
質問します。サーバー・クライアント型でサーバーから情報をもらうアプリ(内から)の通信速度について質問ですが、
この場合は、アプリのプログラムをどう工夫しようが端末の通常の通信速度よりも遥かに遅い速度が上限として決まっている
と聞いたのですが、この認識であってますか?
また、その速度は概略どの程度でしょうか?

524 名前:デフォルトの名無しさん [sage] 投稿日:04/05/26 19:30
>>521
オレはよくわからんが、JSCL関連何か載ってる
http://www.eclipsewiki.net/eclipse/index.php?cmd=read&page=J2ME

>>523
スループットなんて何も期待しない方がいいと思う。
地下入るだけで通信切れちゃったりするし。

525 名前:デフォルトの名無しさん [sage] 投稿日:04/05/26 19:57
あるクラスからCanvasクラスにrepaintさせたい時はどのようにすればよいでしょうか?

526 名前:デフォルトの名無しさん [sage] 投稿日:04/05/26 23:51
ちょっとハッキリさせときたいんですけど、
データフォルダやSDのデータ読める(書ける)のはVアプリですよね?
EZは公式のみかと思ってたんですけど・・。一般でも可能なら教えてほすぃ。
自分なりに考えた方法ではストリーム開くときセキュリティ例外。問題はJAD?

527 名前:デフォルトの名無しさん [sage] 投稿日:04/05/27 00:06
>>526
http://www.jblend.com/release/2003/PR031222.html
sumikara sumimade yome!
ima nihongoga tukaene-yo.

528 名前:デフォルトの名無しさん [sage] 投稿日:04/05/27 00:45
>>525
repaintよびゃいいやん。
ホントにすぐにやって欲しい場合はserviceRepaints

529 名前:デフォルトの名無しさん [sage] 投稿日:04/05/27 08:18
>>526
EZじゃ無理。KDDIのPhase3用公式資料にかいてある

530 名前:38 [sage] 投稿日:04/05/27 08:22
>>525
Canvas#repaint()
を呼べばいい。

531 名前:525 [sage] 投稿日:04/05/27 18:56
解決しました。
レスありがとうございました。

532 名前:デフォルトの名無しさん [sage] 投稿日:04/05/27 21:02
> Phase1環境からサポートされるデータフォルダ連携機能(DataFolderConnectionクラス)が
> 拡張され、データの書き込みや削除が可能になるとともに、連携可能なデータ種も追加されています。

それはともかく、Phase3用エミュレータ マダー?

533 名前:デフォルトの名無しさん [sage] 投稿日:04/05/28 07:41
>>532
もうとっくにでてるよ。

534 名前:デフォルトの名無しさん [sage] 投稿日:04/05/28 16:46
>>533
出てないねえ

535 名前:デフォルトの名無しさん [sage] 投稿日:04/05/28 17:48
>>532
一時期出てたけど、今は出てないことになっとる。
だから持ってる人は持っている。取り損ねた人は・・残念でした。

536 名前:デフォルトの名無しさん [] 投稿日:04/05/28 18:46
すみませんがちょっとお尋ねいたします。

J2MEWTK2.1を使用してRMS関連を操作するアプリを作成しているのですが、
RecordStoreのdeleteRecordメソッドを使用するに当たり困っています。

このメソッドは、RecordStore内の最終レコードしか削除できないのでしょうか?

RMS内に保存したデータを削除する際、記録した最終RecordIdを指定すると
何も問題なくデータが削除できるのですが、1とか2とかの途中のRecordを
削除しようとするとInvalidRecordIDExceptionが発生して該当Record内の
データが消えてしまいます。

それが仕様であるなら諦めも付きますが、お力をお貸し下さい。
宜しくお願いいたします。

537 名前:536 [sage] 投稿日:04/05/28 21:05
すみません、自己解決できました。
問題は別の部分にあり、削除自体は出来てました。

削除したRecordIDのデータを再度読み込もうとしていて
例のエラーが発生していただけでした。

どうもお騒がせいたしました。精進します。

538 名前:536 [sage] 投稿日:04/05/28 21:08
すみません、自己解決できました。
問題は別の部分にあり、削除自体は出来てました。

削除したRecordIDのデータを再度読み込もうとしていて
例のエラーが発生していただけでした。

どうもお騒がせいたしました。精進します。

539 名前:デフォルトの名無しさん [sage] 投稿日:04/05/30 12:15
byte[4]をintに変換するにはどうすればいいですか?

540 名前:デフォルトの名無しさん [sage] 投稿日:04/05/30 13:07
>>539
その、intが格納されているであろうbyte[4]がどうやって作られたかによる。
writeIntで書いたんならreadIntで読めばいい。
intを1バイトごとシフトしながらバラしたんなら1バイトごと逆にシフトさせながら組み立てればいい。
ただしこの場合は符号に注意。webで検索すればいくつかサンプルソースが見つかる。

541 名前:539 [sage] 投稿日:04/05/30 16:02
>>540
シフトする方法でやってますがどうも数字があいません・・・
もう少し調べてみます。

542 名前:デフォルトの名無しさん [sage] 投稿日:04/05/31 11:15
エンディアンが逆なんじゃないかな?

543 名前:デフォルトの名無しさん [sage] 投稿日:04/05/31 12:46
整数のバイト化を(""+INT).getBytes()でやって
逆をInteger.parseInt(new String(BYTE))でやってるけど、どうだろう。

ストリング介してだけど、楽なんで、、、

544 名前:デフォルトの名無しさん [sage] 投稿日:04/05/31 21:06
>>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のとおりにすればいい。

545 名前:543 [sage] 投稿日:04/05/31 22:03
>>544
すみません、JAVAもMIDPも初心者で見当違いなことを書いたようで。
シフトしながら読み込む事はどっかで読んだんですが、楽だから、
>>543の方法でやってたんですが、不具合がでるんでしょうか。

それとも、あまりに常識はずれな書き方ってこと?

546 名前:544 [sage] 投稿日:04/05/31 22:13
>>545
通常、数字を文字で表現するよりそのままバイナリで扱ったほうが
データ量も少ないし処理が高速。

この辺はJAVAとかMIDP以前の問題で、初心者用のプログラミング
の解説書とか読んだ方がいいかも。

こういうのは高級言語の弊害なんだろうなぁ・・・。

547 名前:デフォルトの名無しさん [sage] 投稿日:04/05/31 22:24
>>545
インスタンスの生成(new)と、それに伴って引き起こされるガーベージコレクションのコストは、
実行のコストが高いので気をつけるべし。
特に携帯だとCPUがへっぽこだから、気をすり減らすぐらい気をつけた方が良さげ。

548 名前:543 [sage] 投稿日:04/05/31 22:38
>>546-547
回答ありがとうございます。

これに限ったことじゃないんですが、明らかに汚い処理なのは
分かっていても、きれいな書き方を分かってないのでついつい、
自己流の変な方法で、誤魔化しています。

MIDPの資料って、本もネットでもなかなか見つけられくて、、、、
携帯JAVAで綺麗なソースを書くために、なにか具体的な
お勧め(サンプルソースとか、本とか)って教えてもらえませんか?

過去に読んだのは、Java言語プログラミングレッスン(結城浩)上・下
→JBuilder MobileSet携帯Javaアプリケーション 布留川 英一
→JAVA2ME ゲームエータズガイド 米川英樹(読んでいる途中)
ですが、具体的な書き方をもっと知りたいなあと思ってるんですが。

549 名前:547 [sage] 投稿日:04/05/31 23:27
>>548
J2ME Wireless Toolkit 2.1のサンプル
JavaOneで公開されたPDF文書

NokiaのMIDP向けドキュメント
http://www.forum.nokia.com/main/1,6566,1_0_10,00.html

Technical Articles and Tips
http://developers.sun.com/techtopics/mobility/midp/reference/techart/index.html

このあたりかな。
全部英語で、漏れにはコードだけしか読めない罠w

漏れは英語は読めないんだが

550 名前:デフォルトの名無しさん [sage] 投稿日:04/05/31 23:29
最後の一行は無視汁。

551 名前:540 [sage] 投稿日:04/05/31 23:47
>>539はもう自力で解決してるかもしれないけど一応書いてみる。

int→byte[]のとき
算術シフト(>>)ではなく論理シフト(>>>)を使う。

byte[]→intのとき
各byte型の値で最上位のビットが'1'の場合(負数)はそのまま左シフトしても
期待通りの値にはならない。この辺は2進数の扱いとbyteがintにキャスト
されてから演算される仕組みを調べてもらえば分かると思う。
(「unsigned byte型」がないのでコトがややこしくなっている)

自分は符号対策込みのシフトする方法でint→byte[]、byte[]→intをやってる。

552 名前:543 [sage] 投稿日:04/06/01 00:17
>>549
がんばって読もうとしてみましたが、英語+JAVAの2重苦で、、、、

やっぱり、携帯JAVAの前に、もっと普通のJAVAを勉強した方が
いいのかなあ。

553 名前:デフォルトの名無しさん [sage] 投稿日:04/06/01 00:55
漏れも別に急ぐプログラムじゃなければ543の方法使うけどな。
intは4バイトだから1,2桁程度なら文字の方がデータ少なくて済むと思うし、
544で5行書くところを1行なので、考えようによってはこっちのがきれいだと・・

と言っているのは初プログラミングがMIDPのへたれですが・・

554 名前:539 [sage] 投稿日:04/06/01 00:59
544の方法でやったらうまくいきました。
レスしてくれた方々どもです。

555 名前:544 [sage] 投稿日:04/06/01 06:35
>>552
>>553
携帯JAVA以前の問題なんだって。
プログラムがどうして動くか知っていればそんなこと絶対やらないような間違え。

君たちの場合は、まず、なぜプログラムが動くのか理解した方がいい。

556 名前:デフォルトの名無しさん [sage] 投稿日:04/06/01 17:08
仕事で携帯javaやってるけど、ポインタ使えないのはなんかもう
痒いところに手が届かないって言うか、
誰だこんな言語仕様考えたやつは!!

あと、携帯にメモリ管理が細かに出来ない言語を採用したやつでてこい!!


557 名前:デフォルトの名無しさん [sage] 投稿日:04/06/01 17:21
>>556
そんな貴方に、BREW!
なんでもありの諸刃の剣C++でスリリングで難解なプログラミングが楽しめますYO!

558 名前:デフォルトの名無しさん [sage] 投稿日:04/06/01 17:30
あ、auは仕事ではやってないんだ(笑

559 名前:デフォルトの名無しさん [sage] 投稿日:04/06/02 04:18
Javaはポインタあるじゃん。

560 名前:デフォルトの名無しさん [sage] 投稿日:04/06/02 12:02
>>556
慣れればjavaの良さがわかってくるさ

561 名前:デフォルトの名無しさん [sage] 投稿日:04/06/02 13:08
>>560
遅い。ただそれだけでもうだめ。
どこからも参照されていないオブジェクトを開放してくれる便利システムも、System.gcの遅さで相殺。

562 名前:デフォルトの名無しさん [sage] 投稿日:04/06/02 13:16
>>559
ポインタを使ったjavaのコード書いてみ

563 名前:デフォルトの名無しさん [sage] 投稿日:04/06/02 13:21
>>562
Canvas c = null;

564 名前:デフォルトの名無しさん [sage] 投稿日:04/06/02 15:05
あと、構造体もないしな

565 名前:デフォルトの名無しさん [sage] 投稿日:04/06/02 15:10
java に構造体がないという意見は始めて聞いた気がする。
さすが 2ch。いろいろな人がいるなぁ。

566 名前:デフォルトの名無しさん [sage] 投稿日:04/06/02 15:23
Classはあるが、Jarサイズがでかくなる。
構造体ならコンパイル時に分解されることでJarサイズが変わらずに扱えるのではないか!

と好意的に解釈してみる。

567 名前:デフォルトの名無しさん [sage] 投稿日:04/06/02 15:49
>>563
それをポインタだと思ってるお前はJAVAを勉強しなおせ。

568 名前:デフォルトの名無しさん [sage] 投稿日:04/06/02 16:02
>>567
563ではないが、ポインタ以外のなんだとういうんだ?
むしろ567。お前が説明してみ。

NullPointerException

Null 「Pointer」 Exeption

Objectは全てポインタで扱うものだろうが。

569 名前:デフォルトの名無しさん [sage] 投稿日:04/06/02 16:07
簡易的なデータベースを作りたいんですが、困っています。
RandomAccessFile、seekが使えないようで。
ちなみにreadLineも使えないのかな。

外部ファイルの任意の1行を読み取るのはどうやったらいいんでしょうか。
行のサイズは可変長、固定どちらでも用意できますが、できれば可変長でやりたいです。

570 名前:デフォルトの名無しさん [sage] 投稿日:04/06/02 16:10
>>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言語ではオブジェクトとオブジェク
ト配列を定義することにより、より簡単にしかも信頼性
をもって実行することができます。

571 名前:567 [sage] 投稿日:04/06/02 16:23
>>568
The Java Language Specification
4.3 Reference Types and Values
ttp://java.sun.com/docs/books/jls/second_edition/html/typesValues.doc.html#9317

参照って考えるのが妥当じゃねーの?
Exceptionの名前だけでそう判断するのはいかがかと。


572 名前:556=558=564 [sage] 投稿日:04/06/02 16:39
>>566
うん、その通り。
classにするのは容量的に無理
ちなみに、Javaだからというわけでなく
携帯で使う場合ということでね。

かれこれ10年C/C++やってきたもんでね。

(JavaにClass以外の構造体があったらごめん。Javaはじめたばっかなもんで)

ちなみに、ポインタがないってのは、ポインタ演算が出来ないっていう意味でつ



573 名前:デフォルトの名無しさん [sage] 投稿日:04/06/02 19:33
>>570-571
何を勝ち誇っているのかしらんが、用語を変えただけで、実質はポインタ。
配列も配列オブジェクトへのポインタ。
文字列もStringオブジェクトへのポインタ。

操作できないポインタをポインタと呼ぶのはいかがなものかということで、
呼び方を変えただけ。

本質を理解せずにうわべだけしか見ない奴はプログラマとしてすぐ行き詰まるぞ。
あおりではなく親切心からの警告。

574 名前:デフォルトの名無しさん [sage] 投稿日:04/06/02 19:45
むきになるな。
オブジェクトポインタと変数ポインタの区別もつかん馬鹿が多いだけだ。

575 名前:デフォルトの名無しさん [sage] 投稿日:04/06/02 21:40
>>573
ガベージコレクタがコピーイングを用いるものだと、コピーイングの度に格納メモリの位置が変わるため、
藻前さんが言う単純なポインタではJavaのインスタンスを表現できない。
この場合は、ダブルポインタでないとJava のインスタンスを表現できないことはおわかり?

Java,C#等の言語ではポインタのように明示的に格納メモリの位置を表さない参照という、
新しい考え方を導入することで、このような内部の複雑な事情を隠すことができるのだ。
操作できない明示的な格納メモリの位置を表現する"ポインタ"を考えたところでこれらの問題は解決しない。
どこが本質を理解しているのやら。うわべだけの知ったか君ハズカシイ。

576 名前:デフォルトの名無しさん [sage] 投稿日:04/06/02 21:44
>>573
実質がどうとかじゃねえだろ。お前は定義を無視するのかと。
今までの概念ではポインタだろうけど、JAVAにはポインタはねーんだよ。
JVMが参照をポインタで表現することはあっても、JAVAにポインタは無い。

577 名前:デフォルトの名無しさん [sage] 投稿日:04/06/02 22:26
参照はメモリアドレスを保持しているだけで、ポインタではない。
もちろん、ポインタに近いものではある。

578 名前:デフォルトの名無しさん [sage] 投稿日:04/06/02 23:22
どうでもいいが、話をMIDPに戻さないか?
ポインタの話とかよそでやれYO!

>>569
ファイル入出力はストリーム使うしかないんじゃないかな?
ファイル丸ごと読んできて、バイト列からString生成した後、
改行文字で分割してString配列作って、各要素にアクセスとか。


579 名前:デフォルトの名無しさん [sage] 投稿日:04/06/02 23:23
言語仕様としてのポインタの有無と、ポインタの概念であるところの「アドレスを
指し示すもの」の有無がごっちゃになって議論されているから、混乱してるように
見えるのだが。

580 名前:569 [sage] 投稿日:04/06/02 23:33
>>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のクラスってすべて使えますよね?(あまりよくわかってない。)

581 名前:デフォルトの名無しさん [sage] 投稿日:04/06/03 00:12
>>580
ok
ちなみに、行ごとに読み込むメソッドはなかったと思う。

582 名前:デフォルトの名無しさん [sage] 投稿日:04/06/03 00:42
>>580
列を扱える便利なのはないですか、、、残念。
>>578さんを参考にしながらbyteでなんとかやってみます。

どうもありがとうございました

583 名前:デフォルトの名無しさん [sage] 投稿日:04/06/03 17:37
>>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(); と同じようなものだと気がついたときの
騙された感は最悪だった。

584 名前:デフォルトの名無しさん [sage] 投稿日:04/06/03 17:50
>>583
MIDPスレでやるな。うざい。

585 名前:デフォルトの名無しさん [sage] 投稿日:04/06/03 17:58
騙される方がおかしい。
>C/C++プログラマのJavaの理解を妨げる罠。
大したことない頭だから理解できないだけ。

586 名前:デフォルトの名無しさん [sage] 投稿日:04/06/03 18:03
>>584-585
必死だな。
間違えたなら間違えたと認められないと、プログラマーとして進歩できないよ。
別に間違えたからどうってことはないんだし。

587 名前:デフォルトの名無しさん [sage] 投稿日:04/06/03 19:05
>>583
ま、仕様書に書いてあるならしかたないが

> Javaの Hoge hoge = new Hoge(); が
> C++の Hoge* hoge = new Hoge(); と同じようなものだと気がついたときの

っていうのは、単純に笑えた。煽るためのネタだよね?

588 名前:デフォルトの名無しさん [sage] 投稿日:04/06/03 19:29
つーか今MIDPはネタ切れなんだよ‥

CLDC1.1とかMIDP2.0とか日本で出ないかね
あと今度出るvodaのT4Gネタとか
T4Gはどうですか?>プロの皆様

589 名前:デフォルトの名無しさん [sage] 投稿日:04/06/03 19:37
MIDP2.0出るよ。さすがにどこかは言えないけど

590 名前:デフォルトの名無しさん [sage] 投稿日:04/06/03 21:04
だいぶ前から話だけ動いてる感があるけど。。。

591 名前:569,580 [sage] 投稿日:04/06/03 23:38
大きなデータファイルの途中のデータのみを読み取る方法を聞いた者
ですが、行き詰ってしまいました。

>>580の方法がうまく行きませんでした。

●ByteArrayInputStream(byte[] buf,int offset,int length)
ファイルをすべてbyte[]に変換してから使う方法しか分かりませんでした。
直接データファイルの一部のみを読み込む方法が分かりませんでした。

●read(byte[] b,int off,int len)
このoffの値は、読み込む先のbyte[]の位置の指定でした。
読み込み元のファイルの位置だと勘違いしていました。

592 名前:デフォルトの名無しさん [sage] 投稿日:04/06/04 00:09
>>591
InputStream.skip(long n) を使えばイイ

593 名前:デフォルトの名無しさん [sage] 投稿日:04/06/04 00:47
正直
>>587
が何を言っているのか分からない。
誰か解説してくれ。

594 名前:デフォルトの名無しさん [sage] 投稿日:04/06/04 01:35
>>593
簡単にいえば
オマエハバカ

595 名前:デフォルトの名無しさん [sage] 投稿日:04/06/04 03:27
>>588
T4G? それは...
MIDP2.0? それは...
まだ書けないな。もうちょい待ってな。

でも、今から勉強しておいても良いと思うよ。
SunのWTKは公開されてるんだから。


596 名前:デフォルトの名無しさん [sage] 投稿日:04/06/04 09:02
なんだか「JAVAにはポインタ無いったら無いんだよウワァァァンヽ(`Д´)ノ」って奴が一人いるな。
匿名掲示板で間違えたこと言ったからって、恥じはかきすてろ。
素直に認めて学習したほうがお前のためだ。

597 名前:デフォルトの名無しさん [sage] 投稿日:04/06/04 14:07
なんだか「JAVAにもポインタがあるったらあるんだよウワァァァンヽ(`Д´)ノ」って奴が一人いるな。
匿名掲示板で間違えたこと言ったからって、恥じはかきすてろ。
素直に認めて学習したほうがお前のためだ。

598 名前:デフォルトの名無しさん [sage] 投稿日:04/06/04 14:15
結局、ポインタはあるの?無いの?

599 名前:デフォルトの名無しさん [sage] 投稿日:04/06/04 14:26
なんだか、「参照型はオブジェクトを指し示すものです」程度の意味に使われている「pointer」を、ここで話題にしてるC言語のポインタのことだと思って鬼のクビとったかのようなやつがいるな。
参照型の値がメモリ上のアドレスであることを定めた文章ではないのにね。

600 名前:デフォルトの名無しさん [sage] 投稿日:04/06/04 14:26
>>598
参照値を構成する要素の中のどこかにはある。

601 名前:デフォルトの名無しさん [sage] 投稿日:04/06/04 14:28
言語規定上は、ない。
実装上は、どうにかしてメモリの位置にたどりつける必要があるから、どこかにアドレスはある。

602 名前:デフォルトの名無しさん [sage] 投稿日:04/06/04 15:37
オブジェクトを配列で管理するVMなら、それも必要ないな。

603 名前:デフォルトの名無しさん [sage] 投稿日:04/06/04 15:37
>>598
Javaの参照はポインタである。ただし、Javaの参照はC言語のポインタとは異なり、
ポインタに対する演算と、基本データ型へのポインタの取得はできない。

こんなところでどうよ。

というか、ポインタという言葉を、Cのポインタやメモリのアドレスとイコールで結び付けてる人って
ちょっと了見が狭いよなあとか思ってみるテスト

604 名前:デフォルトの名無しさん [sage] 投稿日:04/06/04 15:44
Javaの参照がポインタではない実装もいくつかある。
結局、言語仕様と実装はわけて考えろということだな。

605 名前:デフォルトの名無しさん [sage] 投稿日:04/06/04 15:58
別にMagic Valueでも構わんわけだが。

606 名前:デフォルトの名無しさん [sage] 投稿日:04/06/04 17:03
ということで、だいたい結論もでたようなので
↓何事もなかったように携帯の話、どぞ。

607 名前:デフォルトの名無しさん [sage] 投稿日:04/06/04 21:49
けーたい

608 名前:デフォルトの名無しさん [sage] 投稿日:04/06/04 22:06
じつは、ねたなんてなかった

609 名前:デフォルトの名無しさん [sage] 投稿日:04/06/05 00:16
iアプリスレがあるから、ここは過疎。

610 名前:デフォルトの名無しさん [sage] 投稿日:04/06/05 00:21
>>591
そのおっきなデータって、ヒープに入りきらんの?

>>592
> InputStream の skip メソッドはバイト配列を作成し、n バイトが読み込まれるか、
> ストリームの終わりに達するまで繰り返しその中に読み込みます。
とJavaDocにかいてあるので、結局はスキップするところまで読み込んでることになるみたい。

611 名前:デフォルトの名無しさん [sage] 投稿日:04/06/05 01:01
>>610
そうなのか...
だとすると、 DataInput.html.skipBytes(int)も使えなさそうだな。

612 名前:デフォルトの名無しさん [sage] 投稿日:04/06/05 02:08
InputStreamでの実装がそうであるというだけで、
ほとんどのサブクラスではもっと効率のいい実装がされていると思うぞ。

613 名前:569,580,591 [sage] 投稿日:04/06/05 08:51
どうもありがとうございました。
無事、>>592の方法で、指定位置のデータを読み取れました。
現在、1行固定バイトのデータに作り変えているところです。


>>610-612
InputStream の skipメソッドなら、skipするデータが大きくなると
遅くなっちゃうということなのかな。もしも、これ以外にできる方法が
あったら教えてください。
今回は、データサイズ的にはすべて読んでもいけそうですが、
なるべく効率的な書き方をしたいので。


614 名前:デフォルトの名無しさん [sage] 投稿日:04/06/05 19:02
>>612
そうでもない。ストリームなので先頭から順番にしか読めない。


615 名前:デフォルトの名無しさん [sage] 投稿日:04/06/06 04:08
>614は相当アホだな


616 名前:デフォルトの名無しさん [sage] 投稿日:04/06/06 11:42
 某作者様の日記に "MA3/Phrase用のツール" について書かれていたんですが、
これって、MA3の音が使えるってことですか?
YAMAHAにはもうないようですが、何か問題でもあったんでしょうか・・。
かなり使いたいのですが。

617 名前:デフォルトの名無しさん [sage] 投稿日:04/06/06 12:39
なぜ"某作者様"に質問しないの?

618 名前:デフォルトの名無しさん [sage] 投稿日:04/06/06 12:42
掲示板は雑談中心で質問しづらいし、メールで聞くのは大げさかなと思ったので・・。

619 名前:デフォルトの名無しさん [sage] 投稿日:04/06/06 16:41
>>616
公式とかなら分からんが、少なくとも一般(無料)アプリの作者は結構
質問とかされるの嫌いじゃないと思うよ。あまりに厨でなければ。
匿名である以外はここで書くのと、そうリスクに差は無いはず。
つか、当然のようにその作者様のほうが詳しいわけで、漏れらに聞かれても・・

620 名前:616 [sage] 投稿日:04/06/07 20:01
 すいません、仰るとおり、作者様に訊いてみます。
失礼しました。

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 が吐き出されてしまいます。
どなたか原因をご存知でしたら、ご教授お願いします。

622 名前:デフォルトの名無しさん [sage] 投稿日:04/06/09 13:26
>>621
ageてしまった・・・
逝って来ます

623 名前:デフォルトの名無しさん [sage] 投稿日:04/06/09 14:39
>>621
このスレのどこかで見たような気がする。

RecordStoreをopenするのをやめてみたら?

624 名前:デフォルトの名無しさん [sage] 投稿日:04/06/09 15:59
>>621
RecordStoreをオープンする必要ないよ

625 名前:デフォルトの名無しさん [sage] 投稿日:04/06/09 16:37
>>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
パスも通ってます。

627 名前:デフォルトの名無しさん [sage] 投稿日:04/06/09 17:52
なんでβ使うかなぁ・・・とは思うけど、それ以上に、なんでresにコピーするかなぁと思う。

628 名前:デフォルトの名無しさん [] 投稿日:04/06/09 17:55
>>627
あっ! 私はアホです。
ご指摘ありがとうございました。
srcですね。 ビルドできました。
すいません。

629 名前:デフォルトの名無しさん [sage] 投稿日:04/06/09 17:58
そんなんでも役に立てて、おいさんはうれしいよ。

630 名前:デフォルトの名無しさん [sage] 投稿日:04/06/09 18:39
でもスレ違いw

631 名前:デフォルトの名無しさん [sage] 投稿日:04/06/09 19:50
一応誘導
iモード携帯電話用Java(iアプリ) Part 5
ttp://pc5.2ch.net/test/read.cgi/tech/1084246226/


632 名前:デフォルトの名無しさん [] 投稿日:04/06/10 00:36
phase3エミュを入手したラッキーメンがいたら
うpきぼん

633 名前:デフォルトの名無しさん [] 投稿日:04/06/10 06:54
ドコモの携帯のムービーって転送する方法って
どんなのがある?iモーションメール以外で

634 名前:デフォルトの名無しさん [sage] 投稿日:04/06/10 07:31
プログラムに関係あるか?ないだろ。

635 名前:デフォルトの名無しさん [sage] 投稿日:04/06/10 15:31
漏れもほしい

636 名前:デフォルトの名無しさん [sage] 投稿日:04/06/10 16:02
スレ違いだってことに気付け

637 名前:デフォルトの名無しさん [] 投稿日:04/06/10 17:46
iアプリのプログラム上でサーバーに接続して
動画を送ることってできるんじゃないかな。
あんまり大きなサイズになるとどうかわからないけど。。

638 名前:デフォルトの名無しさん [sage] 投稿日:04/06/10 18:23
スレ違いだってことに気付け

639 名前:ぼーけーふぉー [sage] 投稿日:04/06/12 11:54
ここで質もんをば・・

VisualJ#で開発ってできます?

640 名前:デフォルトの名無しさん [sage] 投稿日:04/06/12 13:12
JavaとJ#って似て非なる言語じゃないの?

641 名前:デフォルトの名無しさん [sage] 投稿日:04/06/12 13:24
いんやぁ、SunOneStudioが使いにくかったから、JAVA開発環境として使えたらいいなぁと思って

642 名前:デフォルトの名無しさん [sage] 投稿日:04/06/12 18:32
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);
  }
}


643 名前:デフォルトの名無しさん [sage] 投稿日:04/06/12 18:56
Formを作って、setCurrent()すれば良い。


644 名前:デフォルトの名無しさん [sage] 投稿日:04/06/13 10:09
>>643

ありがとうございます。
Display.getDisplay(Hoge.current).setCurrent(new HogeForm());でうまくいきました。

645 名前:デフォルトの名無しさん [sage] 投稿日:04/06/13 14:45
MIDPのAPIのオンラインリファレンス(日本語)ってない?

646 名前:デフォルトの名無しさん [sage] 投稿日:04/06/13 15:25
>>645
どっかに抄訳があった。
ほぼ完全なのは俺のHDDの中。

647 名前:デフォルトの名無しさん [sage] 投稿日:04/06/13 16:12
MIDP1.0なら、さかきけいさんの所にあるよ。
CLDC1.0はSunのサイトのどこかにあったはず。

648 名前:デフォルトの名無しさん [sage] 投稿日:04/06/13 17:46
>>645
「Japanese documentation for the J2ME CLDC V1.0」
http://java.sun.com/products/cldc/docs/CLDC1.0_ja_docs.zip

649 名前:デフォルトの名無しさん [sage] 投稿日:04/06/13 21:22
さんくすこ

650 名前:デフォルトの名無しさん [sage] 投稿日:04/06/13 22:21
>641
IDE使ううまみはそんなにないと思うけどなぁ。どうせエミュはIDEの外だし。
ant最強と言ってみる。

651 名前:デフォルトの名無しさん [sage] 投稿日:04/06/13 22:40
>>650
Eclipse+ant最強

652 名前:デフォルトの名無しさん [sage] 投稿日:04/06/13 22:42
デバッグしたいときは、エミュをデバッグサーバーとして動かして
eclipseからリモートデバッグでいいのかな。

653 名前:デフォルトの名無しさん [sage ] 投稿日:04/06/14 02:37
ezアプリから端末情報(電界強度,電池残量や機種判別)を取得する
し,取得したデータをテキストファイルとしてPCなどの媒体に保存したい
のですが,これって可能なんでしょうか?

ttp://www.itmedia.co.jp/mobile/0104/12/kjava.html

654 名前:デフォルトの名無しさん [sage] 投稿日:04/06/14 02:54
>>652 基本的にはそれでいいと思うけど、R2.x系だとIBM/OTIの連中が
SunのKVMの実装依存の部分に引っかかってbugがとれずリモートデバッグが
安定しない。antもR2.xだとメモリリークでかいしR3.0にしとくのが無難。

655 名前:654 [sage] 投稿日:04/06/14 03:30
そいや、VアプリだったらエミュレータがUEI対応みたいなので、Eclipseよりも
WSDD(Eclipseベースの商用環境)使うと連携がきれいにいくんじゃないかなあ。
9万円くらいしちゃうけどね。

656 名前:デフォルトの名無しさん [] 投稿日:04/06/14 07:05
今マスコットカプセルでゲーム作ろうとしてんだけど、なんかワールド座標系が
無いみたいで出鼻挫かれちゃったんすけど、皆さんどやって解決してます?


657 名前:デフォルトの名無しさん [sage] 投稿日:04/06/14 07:11
あんな平行投影で3Dを名乗る屑システムは使わない。
以上。

658 名前:デフォルトの名無しさん [sage] 投稿日:04/06/14 09:26
マスコットカプセルのバージョンは?

659 名前:デフォルトの名無しさん [] 投稿日:04/06/14 11:08
>>657
そすか・・・、で、他に選択肢ってあるの?

>>658
ん〜、どなんでしょ?
V-appli Emurator for JSCL 1.2.1にインプリメントされてるやつなんですけど。


660 名前:デフォルトの名無しさん [sage] 投稿日:04/06/14 17:03
>>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 ??? ???

661 名前:660 [sage] 投稿日:04/06/14 17:10
ずれすまそ
                  Vアプリ  iアプリ      EZアプリ
マスコットカプセル ver.1   50K
マスコットカプセル ver.2   100K    DoJa2.0
マスコットカプセル ver.3   256K    DoJa3.0     EZ Phase3
マスコットカプセル ver.4   256K v2


662 名前:デフォルトの名無しさん [sage トレースオン!!] 投稿日:04/06/14 17:37
マスコットカプセル ver.3なら、一応透視投影まではできるでそ?

ともって、参考にしてた、ん・ぱかの人のところ見にいったら
なんかまとまってた。

663 名前:デフォルトの名無しさん [sage] 投稿日:04/06/14 22:08
>>526
にもあるけど、EZアプリではデータフォルダやSDのデータを読み書きできない
というのがファイナルアンサー?
526に対するレスはできるという人とできないという人がいるけど
できるなら、どのメソッドでできるんでしょうか

664 名前:デフォルトの名無しさん [sage] 投稿日:04/06/14 22:19
>>663
漏れも知りたい。あとSD読める場合は何MBの
ファイルまで読めるのかとか。

665 名前:デフォルトの名無しさん [sage] 投稿日:04/06/15 00:29
>>663
>>529

666 名前:デフォルトの名無しさん [sage] 投稿日:04/06/15 02:56
データフォルダに関しては
・フォルダにある画像、音楽ファイルなどのリストを取得。
・リスト内のデータに関する著作権とかの情報。
・著作権無し音楽(着うた不可)の再生。
はできるみたいです。(sterdustのコピペ・・

667 名前:デフォルトの名無しさん [sage] 投稿日:04/06/15 03:14
だ・か・ら・さー どうして公式のドキュメント読まないのさ?
ttp://www.au.kddi.com/ezfactory/tec/spec/ezplus.html
「EZアプリ(Java[TM])プログラミングガイド」をダウンロードしてこい!

668 名前:667 [sage] 投稿日:04/06/15 03:25
いやスマンかった。
>>667からゲットできる資料はMS-Word形式なんで誰もが読めるわけじゃないな。
しかしMS-Word形式で一般公開してるってauはアフォですか・・・

669 名前:デフォルトの名無しさん [sage] 投稿日:04/06/15 06:28
http://www.microsoft.com/downloads/details.aspx?FamilyID=9BBB9E60-E4F3-436D-A5A7-DA0E5431E5C1&displaylang=EN

Viewerはあるけどな。誰もがWindowsを使っているわけではないが。

670 名前:デフォルトの名無しさん [sage] 投稿日:04/06/15 07:40
open officeを使えばとりあえず読める

671 名前:デフォルトの名無しさん [] 投稿日:04/06/15 17:49
SmafPlayerで音再生時にストレージ読むと
音がポーズかかるけど、どゆこと?>>W11K
知ってる神たのむ。


672 名前:デフォルトの名無しさん [sage] 投稿日:04/06/15 20:14
>>667
Phase3ではデータを書きこめるみたいな事が書いてあるな。
おれはPhase3の実機もエミュももってないので試せないが。


673 名前:デフォルトの名無しさん [sage] 投稿日:04/06/15 20:36
Phase3で追加された「データフォルダへのファイル書き込み」「データフォルダ内のファイル削除」と
「データファイルからのファイル読み込み」の機能はau指定のサーバに登録されたアプリでのみ使用可能。

いわゆる勝手アプリではデータフォルダからのファイルの読み書き削除はできない。
オフィシャルのコンテンツプロバイダがau指定サーバに登録したアプリでのみ利用可能な機能ってこと。

674 名前:デフォルトの名無しさん [sage] 投稿日:04/06/15 20:37
× 「データファイルからのファイル読み込み」
○ 「データフォルダからのファイル読み込み」

675 名前:526 [sage] 投稿日:04/06/15 20:59
>>671
音鳴らすのもストレージ読むのも結構CPU使うって事じゃね?
個人的な経験では音鳴らし中は再描画が遅くなったョ。
音鳴らし中に、記録>終了、ってしようとすると記録しないことあるらしいから注意

>>673
やっぱり・・。スッキリしました。dクス。

676 名前:663 [sage] 投稿日:04/06/15 22:19
>>673
ありがd

>>667
(゚д゚)ハァ?

677 名前:652 [sage] 投稿日:04/06/18 00:07
結局のところ、eclipseとか統合環境でブレークポイント貼ってデバッグってのは
V-appliの開発では無理なのかな・・・誰か出来てる人いる?

678 名前:デフォルトの名無しさん [sage] 投稿日:04/06/18 04:10
MIDPで使える軽いXMLパーサってなんかない?


679 名前:デフォルトの名無しさん [] 投稿日:04/06/18 12:49
質問。
Vodafoneのアプリ作ってます。
2回キーが押された場合、その間隔をミリ秒で取得したいんだけど、どうすればいい?

680 名前:デフォルトの名無しさん [sage] 投稿日:04/06/18 13:42
>>677 俺はVアプリやったことないけど、エミュレータが
UEI対応なわけだからUEIサポートのIDEでリモートデバッグが
できない理由を思いつかない。試したほうが早いんじゃないか?

681 名前:デフォルトの名無しさん [sage] 投稿日:04/06/18 22:47
>>679
Dateの差分
基本だけど、マイナスになっても大丈夫なようにね。

682 名前:677 [sage] 投稿日:04/06/19 01:40
VアプリのSDKに含まれるemulator.exeが-XDebugオプションないから
デバッグサーバーになれないように思うんだけど・・・

683 名前:677 [sage] 投稿日:04/06/19 02:19
混乱気味。もちっと調べよう。なんとかなりそうな感じだ。

684 名前:デフォルトの名無しさん [sage] 投稿日:04/06/19 02:35
ttp://www.nttdocomo.co.jp/p_s/imode/make/java/index.html

Felica 関連API使用出てきたよ

685 名前:デフォルトの名無しさん [sage] 投稿日:04/06/19 03:09
ほう。
比較的自由に使えるのかね。

686 名前:デフォルトの名無しさん [sage] 投稿日:04/06/19 13:22
Voda P5でTV出力許可ってどうやったらいいんでしょうか。

687 名前:デフォルトの名無しさん [sage] 投稿日:04/06/19 22:11
VodaとEZで同じファイルを使って動かしたいのですが
キャリア判別する方法無いでしょうか?

688 名前:デフォルトの名無しさん [sage] 投稿日:04/06/19 22:53
>>687
どうせ配布ファイルは異なるのだから、それぞれに作った方が楽だと思うけどね。
で、同じファイルで動くのなら、判別する必要なんて無いんじゃない?

689 名前:デフォルトの名無しさん [sage] 投稿日:04/06/20 20:52
多分、タイトルにforEZとかforJアプリとか入れる、そんな感じにしたいんだと思うぞ。

690 名前:デフォルトの名無しさん [sage] 投稿日:04/06/20 21:00
>>686
jadかmanifestに何か書くと思うんだけど、、、

691 名前:デフォルトの名無しさん [sage] 投稿日:04/06/21 05:36
>>686

 vodafoneの資料を読んでみよう。載ってるよ。
どっかで見た。たぶんpdf。

692 名前:687 [sage] 投稿日:04/06/22 20:52
>>689みたいな感じでやりたいのですが
方法はありませんでしょうか?

693 名前:デフォルトの名無しさん [sage] 投稿日:04/06/22 23:35
海外版の携帯アプリを配信してくれるサイト知りませんか?アプリゲットのような
MIDP互換で作ったので海外の人にやってもらいたいのですが

694 名前:デフォルトの名無しさん [sage] 投稿日:04/06/25 12:38
質問です。
約12時間ぐらい上げっぱなしのアプリって無謀?
通話なし、送受信が約40回〜50回レコード操作もありで
10時間で電池切れ。造りが甘いかもしれないとは思っているけど、
もっときちんと作れば、連続20時間使用できるというなら、作るが、無理なら餅が上がらん。
そんなアプリ作ったことある兄貴教えてください。

695 名前:694 [sage] 投稿日:04/06/25 12:40
あ、Ez(JAVA)アプリです。

696 名前:デフォルトの名無しさん [sage] 投稿日:04/06/25 12:54
無理無理無理無理。
せめて待ち受けにしなさい

697 名前:デフォルトの名無しさん [sage] 投稿日:04/06/25 14:57
vodafone(P5)用のアプリをeclipse使って開発しているけど、
デバッガが見つからない。

誰か使いやすいデバッガがあったら教えてください。

698 名前:デフォルトの名無しさん [sage] 投稿日:04/06/25 15:51
>>694
イベントドリブンで作ればそんぐらい持つ、かもね。
本当に持つかどうかは自分で実験してくれ。

699 名前:デフォルトの名無しさん [sage] 投稿日:04/06/25 23:27
imonaみたいに通信時の受信済みのデータサイズを表示させたいのですが
そのやり方分かる方いますか?

ちなみにVoda用です。

700 名前:デフォルトの名無しさん [sage] 投稿日:04/06/26 03:06
>>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以下のスリープだと、タイミングが次第にずれてきます(エミュで)・・
(完全にではなくとも)同じタイミングでイベント起こすのってムリ?

解答くださる兄貴募集です。





703 名前:デフォルトの名無しさん [sage] 投稿日:04/06/27 01:16
>>702
何と何のタイミングを同じにしたいのか、よくわからんのだが。
repaintを呼んでも非同期でしかpaintは呼ばれんぞ。

704 名前:702 [] 投稿日:04/06/27 01:40
>>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したい)

何か勘違いしてる?
初心者でスマソ


705 名前:デフォルトの名無しさん [sage] 投稿日:04/06/27 10:16
>>702

repaint()の直後にserviceRepaints()を呼ぼう


706 名前:デフォルトの名無しさん [sage] 投稿日:04/06/27 12:09
sleep()の精度が悪いのも一つの原因かもしれず。

707 名前:デフォルトの名無しさん [sage] 投稿日:04/06/27 12:16
Sleepじゃダメだろ。
(他部分の処理時間+Sleepミリ秒)が一回のループになってしまって、だんだんずれていくぞ。

708 名前:デフォルトの名無しさん [] 投稿日:04/06/27 14:08
ezアプリにcompassクラスってあるけど、詳細がないのは何故???

709 名前:デフォルトの名無しさん [sage] 投稿日:04/06/27 14:26
以下、理屈の上ではフレーム安定。

long t = 0;

while(true){
  t = System.currentTimeMillis()+××;

  //あれこれ処理

  while(0<t-System.currentTimeMillis())  ;
  repaint(); //※理屈の上ではxxms後に再描画≒フレーム安定
}
※は場合whileループ内に置くのが普通かな。

ただし以下の場合はダメ。

タイマーの精度がへっぽこ、もしくはxxとマッチしない
System.currentTimeMillis()の実装がへっぽこ
System.currentTimeMillis()自体が高負荷
repaint内容が高負荷
あれこれ処理が高負荷
もうとにかくへっぽこ

これらの環境の場合はsleepで妥協しる。


710 名前:709 [sage] 投稿日:04/06/27 14:33
というかよくみたら>>704
catchでrepaint呼んでるが、
これはどのようなことなのか。わたしにゃわかりませんです。

711 名前:デフォルトの名無しさん [sage] 投稿日:04/06/27 16:36
>>710
俺も一瞬そう思ったが、

} catch (Exception e){} ←閉じてる
repaint();
}

なので無問題


712 名前:709 [sage] 投稿日:04/06/27 16:48
>>711
ん、あ、そか。なる

713 名前:デフォルトの名無しさん [] 投稿日:04/06/29 06:57
>>678
nanoxml liteってのがあるよ。6KB弱。
SAXだけなら4KB弱
http://nanoxml.cyberelf.be/
昨今の携帯ならこのくらい無問題でしょう

URLが変わってて見つけるの苦労したワ

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

715 名前:713 [] 投稿日:04/06/29 17:49
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は環境変数を書き換えた後再起動しなくていいのが楽なんですが、
たまーに再起動しないとパスが通らない事あるんですよね。そこがウザイ。

717 名前:678 [sage] 投稿日:04/06/30 05:02
一時的にpath変更するために環境変数書き換えるのもメンドクサ
set JAVA_HOME=C:\hogeとか書いたbatファイル用意して、cmd.exe立ち上げた後に適用するだけの方が楽よ

>>713
thx, ちとライブラリじっくり見ることにします。

718 名前:デフォルトの名無しさん [sage] 投稿日:04/06/30 06:32
>>717
あーなるほど。参考になります。

719 名前:677 [sage] 投稿日:04/06/30 09:07
いろいろやったがだめぽ。V-appliでデバッグできない。
Vodaのサイトにあるマニュアルにsun one studio4との連携について
書かれているがコンパイル、実行までしか書いてないのはそういうことだろう。
JADファイルのMIDlet-Jar-Sizeの値を実行時に自動更新してくれるのは、
UEI対応してるからのようだが・・・
そもそもV-appliのエミュにリモートデバッグするためのオプションがないっぽい。
eclipseのプラグインも落としてきたが使い方よくわからんしあきらめた。

720 名前:デフォルトの名無しさん [sage] 投稿日:04/06/30 10:08
>>677
対応してないよ。


721 名前:デフォルトの名無しさん [sage] 投稿日:04/06/30 18:04
まとめよう。

・mp3ファイルを読むことができない。
・mp3をデコードするにはCPUパワーが足りない。
・音声を出力することができない。

これにて終了。

722 名前:デフォルトの名無しさん [sage] 投稿日:04/06/30 18:04
↑誤爆スマソ

723 名前:デフォルトの名無しさん [sage] 投稿日:04/06/30 19:00
>>722
(・∀・)GO BACK!!

724 名前:デフォルトの名無しさん [] 投稿日:04/07/01 03:07
V601SHを新規購入してみました。早速Vアプリ作成ー、と思ったら・・・
Vアプリを実機に落とすのってコンテンツアグリゲータに登録・うpしてからDLという形になるんですね。

ってことはV400,V300では自作のVアプリは遊べないってことですか?
友達がV401SHを使っているので、自作Vアプリを試してもらいたいんですが・・・。

iアプリはUSBコネクタなどで直接実機に落とせたのになぁ。
VアプリでなんとかUSBケーブルでデータのやり取りできませんかね?

あぁ最悪・・・orz

725 名前:デフォルトの名無しさん [sage] 投稿日:04/07/01 03:16
釣りか?
多分1円で買ったんだと思うけど…

あと数日でアプリ鬼性能のV602SHが出る
vodaは今日から解約祭り
一般人がアプリをケーブル転送出来るのはauだけ

726 名前:デフォルトの名無しさん [sage] 投稿日:04/07/01 03:25
>>725
携帯買うのにお金掛けたくなかったんで。それにV602SHにさほど魅力を感じなかったので。

iアプリってケーブル転送できませんでしたっけ?
前に出来たんだけどな・・・ドコモカップの特別仕様だったのかな?

auいいなぁ。BREWが出て来てなんじゃこりゃ、と思ってVにしたんだけど・・・失敗したみたい・゚・(ノД`)・゚・

727 名前:デフォルトの名無しさん [sage] 投稿日:04/07/01 11:05
まあ、DOCOMOはダウンロード自体は勝手にできるからねぇ

728 名前:デフォルトの名無しさん [sage] 投稿日:04/07/01 12:26
voda自作アプリをテストできないのか・・・
最悪だな

729 名前:デフォルトの名無しさん [sage] 投稿日:04/07/01 12:43
だから衰退してるんです。
アプリゲットとかいちいちメンドイし、作るアプリに制限かかるし、だめぽ

730 名前:デフォルトの名無しさん [sage] 投稿日:04/07/01 12:44
>>728
テストに(ダウンロードする)金がかかるというだけの話だが。

731 名前:デフォルトの名無しさん [sage] 投稿日:04/07/01 12:51
サードパーティの充実こそが繁栄の絶対条件なのにな

732 名前:デフォルトの名無しさん [] 投稿日:04/07/01 13:12
Vアプリって登録してからDLするまでに時間かかるんでしょ?
もうアホかと。

733 名前:デフォルトの名無しさん [sage] 投稿日:04/07/01 14:13
VアプリっていちいちDLしなきゃテストできないのか。
256kbのアプリをつくったら
1kb=1024b=8パケット

256×8=2048パケット×0.3円=614.4円

実機でテストをするごとに614円払うの?

734 名前:デフォルトの名無しさん [sage] 投稿日:04/07/01 14:37
Vodaは元々海外市場の携帯電話だし、あっちじゃアプリなんて全然関心もたれてない。
だから、TVに映せるよ、音楽が聴けるよ、ってラインナップのうちの一つとして
ゲーム向けの機種もあるよ、ってだけにすぎない。
アプリを意識してDoCoMoやauに追いつくつもりなら256kbアプリ対応機種(というかP5型)をもっと出すはず。
それをしてこないならやっぱVodaはアプリが動く携帯電話で勝負する気はないってことなんだろう。

735 名前:デフォルトの名無しさん [] 投稿日:04/07/01 14:52
ちょっとぐらい高くてもiモードにすりゃあ良かった・・・orz

736 名前:デフォルトの名無しさん [sage] 投稿日:04/07/01 14:54
Vは性能もよろしくないしな…。
さすが3巨頭の中でのワースト。
週間雑誌界のチャンピオンみたいな存在だ。

737 名前:デフォルトの名無しさん [sage] 投稿日:04/07/01 14:56
おもちゃとしてV602SHが欲しかったんだけど
おもちゃとしてもこのままDoCoMoのほうがいいのかな・・・

738 名前:デフォルトの名無しさん [sage] 投稿日:04/07/01 15:06
>>737
金が余ってるなら買ってもいいんじゃないの?
V602SHのアプリ性能はかなりの物だよ
ただキャリアが糞なのが問題
社員の大規模なリストラ、ユーザー解約祭りでこの先どうなるやら‥

voda解約祭り、全国のvoda店にて実施中!7千台目
http://hobby6.2ch.net/test/read.cgi/phs/1088578456/

auはauでJavaを捨ててBrewに移行する気みたいだし、日本のMIDP機はどうなるんだろ

739 名前:デフォルトの名無しさん [sage] 投稿日:04/07/01 15:10
なんでこんなにVodaが非難されるのか理解できたよ。まったくもってのクソキャリアだな。

>>737
おもちゃとしてならDoCoMoのほうがいいよ。
V601SH持ってるけど対して遊べるものがない。
搭載Vアプリでまともなのはぷよぷよ体験版だけど、90秒しか遊べない。
そのかわりメール関連は使いやすいと思う。

V602SHは601SHの基本性能がアップしただけっていうし、
メガピクセルカメラにこだわっていないのなら他の携帯にした方がいいと思う。

740 名前:デフォルトの名無しさん [sage] 投稿日:04/07/01 15:13
>>738
BREWってCだよね?あれが出てこなきゃauにしてたよ。

やっぱドコモ最強だな。個人向けの割引サービスがもっと充実すればいいんだけどなぁ。

741 名前:デフォルトの名無しさん [sage] 投稿日:04/07/01 15:14
auとvodaはユビキタス時代の到来を見据えていないのか?と思ってしまうわけだが。

742 名前:デフォルトの名無しさん [sage] 投稿日:04/07/03 18:29
>741
 Vodaは知らんけど、au(BREWアプリ)とユビキタスは関係はないだろうと考えてみる。
 ユビキタスは、どんな物からでも通信インフラやコンピュータの恩恵を受けられると
いう仕組みの発想だから、アプリを作って入れ替えが出来るという時点でVodaもauも基
準はクリアしている。

 Vアプリの配信の手間やezアプリ(BREW)の問題は、iアプリでも生きていたフリー
ソフトウェアの文化から言えば逆行する仕組みだから、文句が出るんじゃないかね?
 一発ネタアプリをBREWで作れるかと言ったら、間違いなくNOなわけだし
(それ以前に審査請求なぞ、ネタアプリで出す気力もないだろうし)。

 …携帯系Javaスレで語る内容ではなかったな。
 申し訳ない。

>738
 auの公式ページでは、VCで開発と書いてあった気がするよ。
 まあ、BREW上でのJavaVMもHPで開発することが決定しているらしいから、いつかは
BREW経由でJavaアプリも動かせるんじゃないかと、淡い期待を抱いてみたり。


743 名前:デフォルトの名無しさん [sage] 投稿日:04/07/03 19:28
>742
BREW上のJavaVMは、BREWの開発元のQ社が既に提供してる。


744 名前:デフォルトの名無しさん [sage] 投稿日:04/07/03 19:51
誰に提供してるのかしらんが、表に出てこないって事は
実用にはほど遠いって事か?

745 名前:デフォルトの名無しさん [sage] 投稿日:04/07/03 21:38
>>744 キャリアが望めば出せるくらいにはあるんじゃないかな。
http://www.umtschips.com/solutions/products/qvm.jsp
あとIBMのもすでに出荷状態。
http://www-306.ibm.com/software/wireless/wme/sysreqs.html

746 名前:デフォルトの名無しさん [sage] 投稿日:04/07/03 22:42
>742
MicroChai on BREWについては既にHP的には黒歴史なんじゃないか?
HPのサイトで検索掛けてみたが、大昔のニュースリリースしか出てこんかった。

747 名前:デフォルトの名無しさん [sage] 投稿日:04/07/03 23:00
続きはこちらで

BREW(Binary Runtime Environment for Wireless) 2
http://pc5.2ch.net/test/read.cgi/tech/1076511398/

748 名前:デフォルトの名無しさん [sage] 投稿日:04/07/04 05:56
au は java機能は進化しつづけてるから BREWなんて使わなくてもいいんじゃない?

749 名前:デフォルトの名無しさん [sage] 投稿日:04/07/04 08:24
auのJAVAなくなっちゃいますから!残念!!

まぁ、またいつか復活するだろうけど。

750 名前:デフォルトの名無しさん [sage] 投稿日:04/07/04 17:56
漏れもBREWオンリーになるって聞いた
auはそうしたいんだと
携帯電話のメーカーがどう考えてるかはしらんが

751 名前:デフォルトの名無しさん [sage] 投稿日:04/07/04 18:52
ぶりゅでじゃばをうごかすというのはしょうらいてきにするんでないの?

できたときにはじゃばあぷりうほっ!てなてるかはしらんがね

752 名前:デフォルトの名無しさん [sage] 投稿日:04/07/04 22:12
BREWだとSH-Mobile搭載無理らしいね

753 名前:デフォルトの名無しさん [sage] 投稿日:04/07/04 23:33
BREWで動くJVMを作れば…

754 名前:デフォルトの名無しさん [sage] 投稿日:04/07/05 04:48
BREWでJVM動かすにしろ、実機で動かすには登録がいるだろ
言語はjavaでもC++でもLispでも何でもいいけど、勝手に作れないのが問題

755 名前:デフォルトの名無しさん [sage] 投稿日:04/07/06 00:17
今度携帯電話を買い替えようと思うのですが
自分でゲーム作って遊べる奴で、お勧め(or 地雷)の機種があれば教えて下さい。

一応、AUにしようと思ってます。

756 名前:デフォルトの名無しさん [sage] 投稿日:04/07/06 00:28
>>755
Java P3対応のA540xCAにしとけ。間違ってもBREW機など買うなよ。

757 名前:デフォルトの名無しさん [sage] 投稿日:04/07/06 00:29
後はW11H、W11Kぐらいだな。

758 名前:デフォルトの名無しさん [sage] 投稿日:04/07/06 00:45
>>756-757
参考にします。ありがとうございました。

759 名前:デフォルトの名無しさん [sage] 投稿日:04/07/06 09:03
CA機はメモリー解放まわりにバグがある('A`)
きちんと開放しる…。

760 名前:デフォルトの名無しさん [sage] 投稿日:04/07/07 02:43
あうのjava開発ツールを落としてみたのだが
単独で使えないのかよこれ

JavaTM2Platform Standard Edition Version 1.3ってのがHPのどこにあるのかわからない…orz

761 名前:デフォルトの名無しさん [sage] 投稿日:04/07/07 03:33
愚痴をいちいち書かなくていいよ。
ネタも提供しなくていいよ。

762 名前:デフォルトの名無しさん [sage] 投稿日:04/07/07 08:32
ttp://java.sun.com/j2se/1.3/ja/download.html
ぐぐればよいが、たしかにsunのHPはどこに何があるかわかりづらく糞。

763 名前:初心者 [] 投稿日:04/07/07 14:27
初めまして。
現在ezアプリを作っているのですが,com.jblend.graphics.m2dパッケージの
スプライト機能の使い方が解りません。
どなたかわかる方がいらっしゃいましたら
すみませんが教えていただけないでしょうか。

764 名前:デフォルトの名無しさん [sage] 投稿日:04/07/07 14:38
何がわからないのかわからないと、教えようがないんだ。
まずはその手の初心者サイトいって、描画くらいまではやってからおいで。

765 名前:763 [] 投稿日:04/07/07 15:03
具体的にはファイルの読み込みです。

//resフォルダの中にあるpngファイルを指定
SpriteImage si = new SpriteImage("/res/*.png");
//ここでエラーが出ます。
java.io.IOException: cannot load /res/*.png

これをどうにかしたいのですが。

766 名前:デフォルトの名無しさん [sage] 投稿日:04/07/07 17:11
>>763
MascotCapsule Tool Kit for KDDI
ttps://www.mascotcapsule.com/toolkit/kddi/tool.html
2Dスプライト プログラミングガイド 2Dスプライトプログラマーズガイド(Java版)

上記ドキュメントをダウンロードして読んで。
これ以上ないほど詳細な解説と使用例が載ってる。

読めば>>765の間違いにも気付くと思う。

767 名前:763 [] 投稿日:04/07/07 18:01
>>766
とりあえず解決しました。
本当にありがとうございます。

768 名前:デフォルトの名無しさん [] 投稿日:04/07/14 11:18
はじめまして。
質問です。
現在、複数機種で待受けアプリを開発しているのですが、
EZやVodaに通常起動と待受け起動を判別する機能はないのでしょうか?
調べてみたところ、DocomoにはgetLaunchType()というメソッドあるようですが、
EZ・Voda(MIDP)にはそれに当たるようなものが見つかりません。


769 名前:デフォルトの名無しさん [sage] 投稿日:04/07/14 12:02
Vodaの場合、
System.getProperty("jscl.system.wakeupmode")

通常起動 : "1"
待受起動 : "2"
タイマー起動 : "3"

ということだそうだ。JSCLのバージョンは未確認。

770 名前:768 [sage] 投稿日:04/07/14 13:14
>>769
Vodaではできるんですね。
レスありがとうございました。

771 名前:デフォルトの名無しさん [sage] 投稿日:04/07/14 19:08
>>769
補足しておくとこの機能が使えるのはJSCL-1.2.x(つまりP5型)のみ。

772 名前:デフォルトの名無しさん [sage] 投稿日:04/07/15 00:51
>768
KDDIのAPIドキュメント(Javadocとか書いてあるリンクの先)は落として読んだ?
Phase2.5からcom.kddi.matiukeパッケージが追加になってるから
そこいらへんを参考に。

773 名前:772 [sage] 投稿日:04/07/15 00:54
スマソ。読み返してみたら「状態を取得する」ストレートな方法はないね。
失礼しますた。

774 名前:768 [sage] 投稿日:04/07/15 09:55
皆さんレスありがとうございます。

レスを元にして調べてみたところ
Vodaの「System.getProperty("jscl.system.wakeupmode")」に対し、
EZにも「System.getProperty("kddi.system.wakeupMode")」というものがあるらしいのですが、
これには待受け状態の取得はないみたいですね。
0=通常起動、1=Cメール起動要求を受けて起動、2=アラーム起動
とのことで。

まとめると・・・

Docomo:Doja2.0以降で可
AU:不可
Voda:P5型のみ可

といったところでしょうか。

775 名前:デフォルトの名無しさん [sage] 投稿日:04/07/15 14:16
詳細は割愛するが
System.getProperty("kddi.system.wakeupMode")で取得できる値は"0"〜"10"で
"8"が「ユーザの待ち受け設定による自動起動」

776 名前:768 [sage] 投稿日:04/07/15 14:33
>>775
"3"以上の値もあったんですね。
調べが足りなかったようで申し訳ありません。

訂正ありがとうございます。

Docomo:Doja2.0以降で可
AU:可(Phase2.5以降?)
Voda:P5型のみ可


777 名前:デフォルトの名無しさん [sage] 投稿日:04/07/16 02:23
VodaのP5のFileUtilityでmp3のパスぶん投げたら
mp3再生してくれるのかな?

>ファイルをネイティブアプリケーションで再生します。
と、あるけど。

778 名前:デフォルトの名無しさん [sage] 投稿日:04/07/16 22:15
正規表現を使いたいんですが何か良い手ありますか?


779 名前:デフォルトの名無しさん [sage] 投稿日:04/07/16 23:57
正規表現を解析処理するCGIの類を鯖に置いて
そいつを叩く。とか。

780 名前:デフォルトの名無しさん [sage] 投稿日:04/07/19 12:27
Vodaアプリで通信を別スレッド?で実行したいのですが
どうやってやればいいんでしょうか?

781 名前:デフォルトの名無しさん [sage] 投稿日:04/07/19 17:41
>>780
こうしなきゃいけない、ってやり方はないから好きにやればいいよ。
ちょっと質問が漠然としてる気もするが、具体的な方針を説明すればよい?

メインのオブジェクトとは別に通信用のオブジェクトを用意して、
そこでスレッドを走らせればいい。
例えばメイン処理にMain.java、通信用にCom.javaを用意して、
comオブジェクト内のrun(){ 通信処理 } をmainオブジェクト側から起動させる。

結果の受け取り方も好きにすればいい。
通信結果を格納するpublicな変数をcomオブジェクト内に用意して
mainオブジェクト側でその変数を常時監視して、値に変化があったら取得するとか。
または、mainオブジェクト側にpublicな変数を用意して、comオブジェクトで
処理が済んだタイミングでその変数を書き換えるとか。


…もしも。
スレッド起動のやり方や通信のやり方が分からないということであったら
携帯アプリの作り方を説明した基本的な参考書でも読んでおくれ。

782 名前:デフォルトの名無しさん [sage] 投稿日:04/07/19 17:42
V60x機種は、どのくらいのヒープメモリがあると期待していいんでしょうか。
ドキュメントにはV601SHは1229KByteって書いてあるけど、
601Tとかできれば2000KByteくらいあって欲しいなぁ・・・

>777
試してみた感じでは、ネイティブ実行してくれるのは動画だけのような感じだったんですが、どうでしょ?
エミュではMMFもPNGもTXTも「not supported」とかエラー吐きました。

783 名前:デフォルトの名無しさん [sage] 投稿日:04/07/20 21:50
ボーダの256k ver2は256k ver1とAPIは同じで、
違うのは機種の性能ってことでいい?

784 名前:デフォルトの名無しさん [] 投稿日:04/07/20 21:58
常駐してもいいですか o(゚∀゚o) (o゚∀゚o) (o゚∀゚)o
完璧に過疎ですか
無理やり盛り上げてもいいですか
おまいらキー入力まわりどうやって処理してますか
素直にイベントハンドラ内でやっちまいますか
キーリピートはどうしてますか
オブジェクト指向とかで書くようになりましたか
お話しようYO

785 名前:デフォルトの名無しさん [sage] 投稿日:04/07/20 22:28
漏れはキー入力周りの処理は独自クラスを作成していて、InputDevice#getKeyState()な感じになってる。
あと趣味で作成しているのでスピードをあまり気にせずに激しくOOPしている。
イベントハンドラ中で書くと描画中にステートが変わる可能性があるのでやめた方がよさげ。

786 名前:デフォルトの名無しさん [sage] 投稿日:04/07/20 23:03
>>785
キー入力はやっぱりそうか
つぅか自然とそうなってイクよな
OOPはプロの場合はどうなんだろう
OOPな感じじゃないとデバッグマンドクサイんじゃないかと
常々おもったりおもわなかったししているんだYO
仕事でやってるヤシも教えてくれYO

787 名前:デフォルトの名無しさん [sage] 投稿日:04/07/20 23:42
OOP。
そんなものは忘れないとお仕事のMIDPアプリは書けません。
クラスは二つ。MIDletのサブクラスとCanvasのサブクラス。それが全て。


ああ、OOPを完全に忘れちゃうとイベント取れなくなっちゃうからその辺はてきとーに。
(´-`).。oO(なんでJavaで書いてるのに、フィールドの名前の衝突気にしなきゃならないんだろう)

788 名前:デフォルトの名無しさん [sage] 投稿日:04/07/20 23:46
通信用のスレッドは?

789 名前:デフォルトの名無しさん [sage] 投稿日:04/07/20 23:49
>>787
いまだにそうなのか・・ターゲットが256kアプリでも?

790 名前:デフォルトの名無しさん [sage] 投稿日:04/07/20 23:51
>>783
V2はJSCL-1.2.2仕様になっている為、カラオケ関連など使えるAPIが増えている。


791 名前:787 [sage] 投稿日:04/07/21 00:24
漏れの相手はPhase2.0のあうなのですよ。
Phase3.0用には(ほぼイコールQVGA機種ということもあり)
画像他差し替えて別バイナリ作るけど、
だからって流石に書き下ろしてられんしorz

ちなみにPhase2.0ではHTTP通信は同期だったり(……のはずだが)
だから独立スレッドは要らないのです(……と思うんだけど)

792 名前:デフォルトの名無しさん [sage] 投稿日:04/07/21 00:47
ふむふむなるほど・・小が大をかねるわけだな・・
同期だとスレッド イラヾ('A`)ナイ の?そうなの?
非同期のときは必要なの?
通信てアタイよくわかんない。
暇な人いたら説明キボン。

で、256k専用アプリ扱ってるヤシの登場キボンヌ!

793 名前:デフォルトの名無しさん [sage] 投稿日:04/07/21 00:53
先週から携帯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);

794 名前:デフォルトの名無しさん [sage] 投稿日:04/07/21 01:09
>>790
なるほど サンクス

795 名前:デフォルトの名無しさん [sage] 投稿日:04/07/21 01:10
>>793
J2MEでは浮動小数点やsin、cosはつかえんよ。固定小数点なら使えるのでがんばってや。

796 名前:デフォルトの名無しさん [sage] 投稿日:04/07/21 02:17
>>791==787
HTTP通信は同期メソッドだけど、別スレッドでやった方が良いと思う。
通信中と分かる動きのある表示を出した方がユーザビリティがある。
#面倒いのでやりたくないってのは分かりますけど...。


797 名前:デフォルトの名無しさん [sage] 投稿日:04/07/21 07:21
うん、やりたくない。
趣味プログラママンセー。
// というかHTTP通信まだ書いたことない


798 名前:デフォルトの名無しさん [sage] 投稿日:04/07/21 10:01
>>795
そうなんすか!サンクス。

799 名前:デフォルトの名無しさん [] 投稿日:04/07/21 17:00
i-Appli のメールからのアプリ起動
--B:A
TEXT="アプリ起動"
ADF="http://demo.co.jp/test.jam"
"Param1"="1234"
"Param2"="abcd"

みたいなのって、
Vアプリ と Brew でできるんですかねぇ??
知ってる人教えてください。

800 名前:デフォルトの名無しさん [sage] 投稿日:04/07/21 17:03
できません。BREWはスレ違い。

801 名前:デフォルトの名無しさん [] 投稿日:04/07/21 17:06
>800
外部からのアプリ起動で、何か言い方法は無いんですかねぇ...

802 名前:デフォルトの名無しさん [sage] 投稿日:04/07/21 18:46
サー、無理やり盛り上がってまいりますた(・∀・)

で、256k専用アプリ書いてるヤシいないのかYO

803 名前:デフォルトの名無しさん [sage] 投稿日:04/07/21 19:56
256KB専用アプリったって、単に100KBより大きいアプリなら256KB専用アプリだし、
P5型でのみ使える機能を使えば容量小さくても結果的に256KB専用アプリと言えるし。
>>802は何をもって256KB専用アプリと言っていて、それで何を聞きたいのよ?

804 名前:デフォルトの名無しさん [sage] 投稿日:04/07/21 20:51
>>803
OOPは利用されているかどうかを知りたいんだYO
(o゚∀゚o)

805 名前:デフォルトの名無しさん [sage] 投稿日:04/07/21 23:25
250KBって大きいようで小さいよな… orz

806 名前:デフォルトの名無しさん [sage] 投稿日:04/07/22 04:28
8bitCPU全盛の頃は、32kとか64kでも広大に感じた訳だが・・・

807 名前:780 [sage] 投稿日:04/07/22 21:10
>>781
スレッド起動のやり方や通信のやり方は分かるのだが
通信開始の方法とかがわからんのです

簡単に説明すると
mainで接続命令
    ↓
comでtxtファイル読み込み
そこに書いてある情報を頼りに
jpgファイル読み込み
    ↓
mainに受け渡し&表示

という処理なのですが
接続命令をどうやればいいのかと・・・

808 名前:デフォルトの名無しさん [sage] 投稿日:04/07/23 00:40
接続命令って、なんのこといってるんだろう。

809 名前:デフォルトの名無しさん [sage] 投稿日:04/07/23 04:30
俺、携帯アプリのプログラマになりたいから興味あったんらけど
256k専用書いてるヤシはイナイと・・(・A・)
プロはOOP禁止と・・

810 名前:デフォルトの名無しさん [sage] 投稿日:04/07/23 13:28
OOPってなんですか

811 名前:デフォルトの名無しさん [sage] 投稿日:04/07/23 14:02
オブジェクト指向か

812 名前:デフォルトの名無しさん [sage] 投稿日:04/07/23 14:15
>>810
Oopsの略

813 名前:デフォルトの名無しさん [sage] 投稿日:04/07/23 15:28
V601Tなんですが、

destroyAppでRecordStoreへの書き込み処理を書きました。
P5型のエミュではちゃんと動くんですが、
実機V601Tだとどうも保存内容がおかしくなる、もしくは保存されていない、そんなようです。

destroyApp以外で全く同じ保存処理をやらせても問題ない。
終了時にdestroyAppが呼ばれないのはC4型のみ。
destroyAppに処理5秒も絶対かかっていないと言い切れる。


なんか心当たりないでしょうか。

814 名前:デフォルトの名無しさん [sage] 投稿日:04/07/23 22:18
その5秒が何の根拠か分からないけど
処理が多いときdestroyAppで記録できないとかってのは
EZでもあるし、MIDlet全体でありうるんじゃない?
destroyAppで書いたこと全部やらないと終わんない、
っていう仕様っだったとしたらそれは問題だと思う。

815 名前:813 [sage] 投稿日:04/07/23 22:38
>>814
> 5秒
開発ガイドTips編v1.0.4の1.1.3節に、
P型の場合destroyAppは呼ばれてから5秒後に強制終了される、
と書いてあるんで、この5秒に引っかかっていないってことをいいたかったんです。
やりたい処理自体は実機でも体感できないほど早いんですがねぇ。

結論としては、destroyAppにはあまり期待しない方がいいってことですかね?
保存されないならまだしも、変な値で保存されるっぽかったりと、もう大変で・・・

ユーザからのキー入力があるたびにRecordStore開いて保存しまくりなアプリの方が逆に安心できそうです・・・


816 名前:デフォルトの名無しさん [sage] 投稿日:04/07/23 23:11
RecordStoreへの書き込み自体は重くないから、適宜書き込んでるほうがいいと思う。

電源断とかいう可能性もあるわけだし、データが壊れててもなんとかできるようにつくるのが
いいかもしれないが。

817 名前:813 [sage] 投稿日:04/07/24 00:19
>>816
キー入力ごとに保存しまくりにすることにします。
どうせ、RecordStore内容はバッファリングされて、
不揮発メモリへの書き込みはアプリ終了後になるようですし、
あんまパフォーマンス気にしなくてもよさそうなので。

818 名前:デフォルトの名無しさん [sage] 投稿日:04/07/24 00:54
>>813
P5ならApplicationManager#flushRMS()で随時書き込み。
実装が機種依存かどうかまでは知らないが。

destroyApp()はハード側の都合による終了処理の真っ最中なわけだから
ソフト側としてはここに処理は書きたくないな、というのが正直なところ。

余計なお世話かもしれないが。
例えばソフトキーに終了機能を割り当てて、ユーザーのキー押下で
アプリ終了処理をし、notifyDestroyed()を呼び出すというやり方もある。
これなら終了処理にかかる時間を気にしなくて済むし、確実に終了処理を
させられるし、destroyApp()には何も書かなくて済む。

819 名前:デフォルトの名無しさん [sage] 投稿日:04/07/24 00:59
Vodaエミュで通信するとエラーになるのに
端末ではきちんと動くのは
どーゆーことですか?

820 名前:781 [sage] 投稿日:04/07/24 01:24
>>807=780
「通信のやり方は分かるのだが通信開始の方法とかがわからん」
というのがどういうことなのか分かりませんが(^^;

通信処理はまずURLを指定してサーバへ接続することから始めます。
Connector.open()を使います。
その後、ストリームをオープンして、データを読み書きして、
最後にストリームと接続を閉じます。
使用するAPIはCLDCのAPIリファレンスで確認してください。
具体的なソースはネットで検索したりvodafoneのドキュメントを参考にしてください。

821 名前:デフォルトの名無しさん [sage] 投稿日:04/07/24 02:12
VもEzもエミュはつかえん。

822 名前:デフォルトの名無しさん [sage] 投稿日:04/07/24 14:09
AスレッドからBスレッドの再描画できないの?

823 名前:デフォルトの名無しさん [sage] 投稿日:04/07/24 21:36
それはスレッド間通信のことか?
Graphicsを使いまわしているってことなら、結果は完全に実装依存だな。
できなかないが、何が起こるかはわからん。

824 名前:デフォルトの名無しさん [sage] 投稿日:04/07/24 22:36
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にあるようなやつです。

825 名前:デフォルトの名無しさん [sage] 投稿日:04/07/24 23:07
あああああああああ
容量制限が、UZeeeeeeeeeeeeee!!!

容量ダイエットのために、ソースの可読性を落とさなければならないなんて……ぐすん。

ソースの可読性をそのままに、コンパイルしてくれるプログラム、あったらいいのに。
例えば、ソースに含まれる public static final な定数を、
すべて生の数字に変えてからコンパイルを実行する、とかね。
それぐらいだったら、実現できそうだよね。難しそうだけど。


826 名前:デフォルトの名無しさん [sage] 投稿日:04/07/24 23:18
>825
おーい。J2SE1.3.1over使ってるか?
最適化デフォルトならそれくらいはやってくれてるぞ。
jadかなんかでディスコンパイルすりゃ分かる。
あとProGuard使ってみるとか。

827 名前:デフォルトの名無しさん [sage] 投稿日:04/07/24 23:20
>>824
コンテンツサイズと受信ずみサイズをインスタンスフィールドにする
受信するごとに repaint()する
paint()でプログレスを自前で描画する


828 名前:デフォルトの名無しさん [sage] 投稿日:04/07/24 23:22
定数置換するだけならいろいろあるっしょ。

829 名前:デフォルトの名無しさん [sage] 投稿日:04/07/24 23:30
>>825
@IT iアプリを10Kbytesに収めるテクニック
http://www.atmarkit.co.jp/fmobile/rensai/doja07/doja07.html
とか参考に。

ProGuard http://proguard.sourceforge.net/ は有名だね。

830 名前:824 [sage] 投稿日:04/07/24 23:49
>>827
受信済みサイズってdata.length?

無知でスマソ・・・

831 名前:824 [sage] 投稿日:04/07/25 00:44
スマソ
解決しました

832 名前:デフォルトの名無しさん [sage] 投稿日:04/07/25 00:49
>>825
気持ちはわかるが、それは基本的には最後の手段だぞ。
単に容量落とすだけなら、いろいろ手段はある。

ProGuard類の使用でオビュファスケーション&最適化して削る、
C用のプリプロセッサ等を併用してマクロ&インライン関数の恩恵にあずかる、
7zip等の強力なアーカイバを使ってJARのサイズを削る、とか。

一定以上攻め込んだアプリ書こうとすれば、どうしてもクラスを削除したり
汚いソースを書かざるを得なくもなるが、それ以前にできる努力も馬鹿にならない。
がんばれ。



ところで、言いがかりだと思うんだけど、RetroGuardって、
クラスが(つーかJAVAファイルが)複数あると、機嫌損ねない?
時々実機はおろかエミュでも動かんJARが作られてしまう気がする。
ProGuardは大丈夫なのかな、その辺。

833 名前:デフォルトの名無しさん [sage] 投稿日:04/07/25 14:43
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

コンパイルのときにこのエラーが出るのだが・・・
どーゆー意味?

834 名前:デフォルトの名無しさん [sage] 投稿日:04/07/25 19:41
Vodaでテキストフィールドを表示させるにはどうすればいいのでしょうか?

835 名前:デフォルトの名無しさん [sage] 投稿日:04/07/25 19:58
>>834
ttp://web.sfc.keio.ac.jp/~s01030na/personal/html/prog/MIDP/TextField_sample.html

com.jblend.micro.lcdui.LocalizedTextFieldも参照するとよいアル

836 名前:デフォルトの名無しさん [sage] 投稿日:04/07/25 20:33
>832
前の開発で使ってた限りではだいじょぶだったYo > ProGuard
恐らく数十回はビルドを繰り返したが一度もその手のトラブルに
引っかかったことはなかった。
最初使ったときはうっかりベリファイ済みのclassファイルに適用して
「なんでじゃー!!」と頭を抱えたことがあるがw

>833
……読んで字のごとく、MANIFEST.MFに
同じMIDlet-Nameを複数書いてるんでないの?
見直ししる。

837 名前:834 [sage] 投稿日:04/07/25 21:15
>>835
レスサンクス
でも、Graphics gで書かれている内容と切り替えるには
どうやれば・・・・

分かりにくくてスマソ

838 名前:デフォルトの名無しさん [sage] 投稿日:04/07/25 21:51
>>837
Graphics? Displayableを理解してないのか?
paintの引数のGraphicsはCanvas描画用のグラフィックで、えっとえっと・・・何からいえばいいんだろ。

839 名前:デフォルトの名無しさん [sage] 投稿日:04/07/26 21:17
>>837
>>642-644


840 名前:デフォルトの名無しさん [sage] 投稿日:04/07/26 22:58
ArithmeticExceptionエラーが出るのだが、
見当たるところがない・・・。

考えられるのは
sh.info=1;
というのしかないのだが、
これで発生する可能性あるの?
ってか、もしこれだったら解決法よろ・・。

841 名前:デフォルトの名無しさん [sage] 投稿日:04/07/26 23:12
>840
で、そのshって何よ?

842 名前:840 [sage] 投稿日:04/07/26 23:24
shというスレッド

843 名前:デフォルトの名無しさん [sage] 投稿日:04/07/26 23:43
それだけでわかったら超能力者だな。

844 名前:834 [sage] 投稿日:04/07/27 01:00
>>839
サンクス
出来ました!

がその逆はどうすれば・・・。
Display.getDisplay(this).setCurrent(new HogeCancas());
だとエラーになるし。。。

845 名前:デフォルトの名無しさん [sage] 投稿日:04/07/27 02:49
Cancasだから・・?
どんなエラーなのかだそうよ。

846 名前:デフォルトの名無しさん [sage] 投稿日:04/07/27 22:52
ホゲカンカス いい名だ


847 名前:840 [sage] 投稿日:04/07/28 00:33
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;
}
}
で通信、

848 名前:840 [sage] 投稿日:04/07/28 00:38
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.
です。

849 名前:840 [sage] 投稿日:04/07/28 01:01

スミマセン・・
自己解決しました

850 名前:デフォルトの名無しさん [sage] 投稿日:04/07/28 03:46
>>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 );
とかすりゃあいいのよ。

851 名前:834 [sage] 投稿日:04/07/28 12:02
>>850
javax.microedition.lcdui.Display の getDisplay(javax.microedition.midlet.MIDlet) は (main) に適用できません。
Display.getDisplay(this).setCurrent( from );
と言われるのですが。。

スレッドの中で処理してるのがいけない?

852 名前:デフォルトの名無しさん [sage] 投稿日:04/07/28 12:11
>>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がどうこうって、書いてあるんですが、
よくわからなくて困ってます。
どうゆう事なんですかねぇ...(汗)

854 名前:デフォルトの名無しさん [sage] 投稿日:04/07/29 00:42
>>853
同じ質問をあちこちでするな。

PATHがつながってないんだよ。
ちゃんとエラーに書いてあるだろ?


855 名前:かけだしJavarer [] 投稿日:04/07/29 11:11
それがわかんねぇから聞いてんだよ。

856 名前:デフォルトの名無しさん [sage] 投稿日:04/07/29 11:18
人に聞く前に自分で調べろ阿呆。
エラーメッセージすら読めないんだったらそもそもプログラマは務まらん。

857 名前:デフォルトの名無しさん [sage] 投稿日:04/07/29 11:33
そんなこと言わずに教えてやれよ

858 名前:854 [sage] 投稿日:04/07/29 12:15
>>857
じゃあ、あとは頼んだよ。


859 名前:デフォルトの名無しさん [] 投稿日:04/07/29 15:39
>>856
わかんねぇんだろ?他のスレでわからないやつはだいたい
こんなメッセージ書きやがる。

860 名前:デフォルトの名無しさん [sage] 投稿日:04/07/29 18:05
>>859
うまくいかない原因を探して、対策を考えて、それを実行する。
その当たり前の手順が当たり前にできない馬鹿は、結局問題の本質を把握
できてないから、その場を乗り切ったとしてもまた同じような問題で引っかかる。

だから、自分で手と頭を使って調べたり考えたりすることが当たり前にできない
奴がプログラムを書こうとするのがまず間違い。周りに迷惑をかけるだけかけた
挙句、結局何も身につかずに終わるのがオチ。

なんでム板でこんなレベルの話をしなければならんのだ。

861 名前:かけだしJavarer [] 投稿日:04/07/29 19:23
>>859
いや、そんなに熱くならなくてもいいんですけど...(汗)
ただ、色々調べてもなかなか解決しないんで...
at javax.microedition.midlet.MIDlet.main(+38)
destroy Old Emulator....
ってやっぱり出るんですよねぇ...

862 名前:デフォルトの名無しさん [sage] 投稿日:04/07/29 20:14
>>861
ド素人がどんなソース書いてんかなんて想像つかんのよ。
コンパイラ(機械)がエラー内容教えてくれてんのを無視するようなやつに
生身の人間が親切に教えてくれると思うか?ちょっと考えてみ。

NoClassDefFoundErrorなんてのはJavaでは(初心者が)よくやる間違い。
どんな環境でアプリ作ってんのか知らんけど
最初に実行するクラスがちゃんと指定されてない(JADのMIDlet-1)んだろ。
J2MEのWTKなら初っ端にプロジェクト名とクラス名あったと思うけど。

863 名前:デフォルトの名無しさん [sage] 投稿日:04/07/29 23:05
>>861
ソースコードとjad、manifestをまとめてどっかのアップローダに
上げてみたら、良いアドバイスがくるかも。

864 名前:デフォルトの名無しさん [sage] 投稿日:04/07/30 01:16
ここも夏ですか。_| ̄|○

865 名前:854 [sage] 投稿日:04/07/30 03:27
親切な奴も結構居るんだな。

>> 861
まずは、何を使ってビルドと実行をしているのかを言わないと対処方法は分からん。
WTKか?バージョンは?

それとコンパイル時に出てるメッセージがないと何が起きてるかワカンラン。
そもそもアプリはビルドできてるんか?

質問する時には、必要な情報を出すのが基本だぞ。
まったく、MIDP2.0端末の開発に忙しい時に...。


866 名前:デフォルトの名無しさん [sage] 投稿日:04/07/30 09:34
口調は荒くても、親切な奴ばかりだなw
とにかく質問するときは、状況をこれでもかと詳しく書くこと。

特にエラーメッセージ書かずに「エラーがでてできません」なんて言われても困る

867 名前:デフォルトの名無しさん [sage] 投稿日:04/07/30 09:50
俺は別に困らんけどな。

868 名前:デフォルトの名無しさん [sage こんな感じか?] 投稿日:04/07/30 13:41
よーしパパ >867 を困らせちゃうぞー

JAVAをインストロールできません
サンのページからダウンロードしてきたファイルをダブルクリックしたんですが、エラーが出ます。
いろいろやってみたんですがわかりません、困りました。
サンのサイトが壊れてるんでしょうか?
OSはWINDOUSでCPUはセレロンです。
ドコモのNのパカパカで動くFFみたいなRPGを作りたいです。
>867 さんよろしくお願いします。。。。。


869 名前:868 [sage] 投稿日:04/07/30 13:44
しまった、こっちはMIDPスレだったorz
「スレ違い」の一言で済むな。

870 名前:デフォルトの名無しさん [sage] 投稿日:04/07/30 14:20
>>868-869
867は「俺は質問するだけで、こたえねーから困らん」と言ってるんだが。

871 名前:868 [sage] 投稿日:04/07/30 16:06
つまらんネタ振りしてスマソ

アプリゲットで動作確認用端末貸し出しサービスやるらしい。
http://ac-admin.appget.com/service.htm

872 名前:867 [sage] 投稿日:04/07/30 16:23
いや、ちゃんと説明されてない質問には答えないので、困らないといいたかったんだが。

873 名前:デフォルトの名無しさん [sage] 投稿日:04/07/30 16:49
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の設定とかでっかね?


875 名前:デフォルトの名無しさん [sage] 投稿日:04/07/30 23:45
WTKは1.0.xのほうがいいような。

876 名前:デフォルトの名無しさん [sage] 投稿日:04/07/30 23:49
JDK1.3の方が良い予感。

877 名前:デフォルトの名無しさん [] 投稿日:04/07/31 12:53
JADとマニフェストファイルを生成する
メタプログラムをJavaで書いてみましたです。
おまいらはXMLとか使ってるですか。

878 名前:デフォルトの名無しさん [sage] 投稿日:04/07/31 13:47
antにおまかせ。

879 名前:デフォルトの名無しさん [] 投稿日:04/07/31 13:54
ふむ。
ヴぉだのサンプルもantでビルドな雰囲気だよな。
使ってみるかな。

880 名前:デフォルトの名無しさん [sage] 投稿日:04/07/31 16:28
質問します。

ボーダフォン用アプリの自作環境を作成中の者です。
ボーダフォン提供の「SpriteCanvasクラス」を使ったプログラムから、
コマンドラインにてJAR・JADファイルを作り、携帯の実機で実行するところまではできました。
ですが、プログラム変更のたびにJADファイル内の「JARファイルのサイズ」を
書き換えなくてはなりません。
それがめんどうなので「J2ME,Wireless Toolkit」を使って、ビルドのたびに
JADファイルを作ってもらおうと考えました。

ボーダフォン提供の「SpriteCanvasクラス」を使っていますので、
「J2ME,Wireless Toolkit」には(コンパイル・事前検証の際に)、
ボーダフォン提供のライブラリ「stubclasses」を見てもらはなければなりません。

「J2ME,Wireless Toolkit」のlibディレクトリに「stubclasses」をコピーしたり、
いろいろやってみましたが、ビルドに失敗します。

他の方々は、この「J2ME,Wireless Toolkitを使って、ボーダフォン提供のクラスを使った
アプリを作る」ということを、どうやって実現させているのでしょうか?

881 名前:デフォルトの名無しさん [sage] 投稿日:04/07/31 17:08
http://homepage1.nifty.com/marukun/java/vapp.html
コマンドプロンプト用 jadファイル サイズアップデートツール(jadupd)

882 名前:デフォルトの名無しさん [sage] 投稿日:04/07/31 17:40
>>880
auのKJX作成ツール使うってのもいいんじゃない?
つか漏れはEZメインだから、KJXツールしか使ったことねぇ。

883 名前:デフォルトの名無しさん [sage] 投稿日:04/07/31 18:15
>>880
Wireless Toolkitのlibディレクトリにmidpapi.zipってファイルがあるはずだ。
この中にstubclassesの中身を一緒に圧縮しなおせばOKなはず。

884 名前:880 [sage] 投稿日:04/07/31 21:04
みなさんサンクスです!

>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
ビルドに失敗しました」

再圧縮の方法は、もう少しいろいろ試してみます。ありがとうございました!


885 名前:882 [sage] 投稿日:04/07/31 23:28
>>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)て
バグってるぽ?
まったく制御できずリピートイベントが発生するのは
方向のみっぽいのですけんど。
情報求ム〜

887 名前:880 [sage] 投稿日:04/08/01 11:37
>885
ご丁寧な説明、ありがとうございます!
そのツールは、代わりに指定できるということで、使えそうですね。
今度やってみます。そうなると、「まさか、au用のツールを使うことになるとは・・・」という
ことになるんですね。
とても参考になりました!


888 名前:デフォルトの名無しさん [sage] 投稿日:04/08/01 13:53
>>886
Vアプリ開発ガイドTips編

JSCL - DeviceControl
 注意:
 ・DeviceControl#setKeyRepeatState()の振る舞いは端末の実装に依存する。

889 名前:デフォルトの名無しさん [sage] 投稿日:04/08/01 14:18
>>888
んーんー・・
そか。ありがd。
システムだよりのリピートは事実上使えないってとこかね〜

890 名前:デフォルトの名無しさん [] 投稿日:04/08/01 18:18
Vアプリ初めて、かつ初心者です。サンプル(HelloWorld)プログラムを
コンパイル、preverify、jarファイル作成、エミュレーターで動作確認後
アップして携帯実機で動かそうと思ったらダウンロードはできるんですが
実行(起動)するとエラーとなって起動できません。
どんな原因が考えられるでしょうか?
お助けを。
jadファイルやマニフェストファイルには間違いないと思うのですが・・・


891 名前:デフォルトの名無しさん [sage] 投稿日:04/08/01 18:24
>>890
画面サイズかな。

892 名前:デフォルトの名無しさん [sage] 投稿日:04/08/01 19:02
>>890
まずはTIPS参照だYO
それでもダメなら端末の種類とソース類アップだYO
ガンガレ ノシ

893 名前:デフォルトの名無しさん [sage] 投稿日:04/08/01 21:35
だね。
特に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なミスでしょうか??

895 名前:デフォルトの名無しさん [sage] 投稿日:04/08/02 01:44
>>894
なんでそう、中途半端なエラーメッセージしか書かないんだろうなぁ・・・

少なくとも、前者のjarに追加クラスがまとめて入ってしまうのはダメ。

896 名前:デフォルトの名無しさん [] 投稿日:04/08/02 02:09
>>895
レスありがとうございます。
エラーは・・・エミュのメッセージ表示画面には
それしか出てきません。。。
コマンドからjarファイル作成してもやはりエミュでは動きません。
今もずっとやってるんですけど。。。


897 名前:895 [sage] 投稿日:04/08/02 02:48
>>896
んじゃ、適当にサンプルを実行してみてテストするとか。
http://www.saturn.dti.ne.jp/~npaka/kvm/midp/index.html

サンプルで動くなら→自作のやつのどっかが悪い
動かないなら→エミュのインスコとかpath設定がまずい。



898 名前:デフォルトの名無しさん [sage] 投稿日:04/08/02 08:13
>>896
jarの拡張子zipにして展開したら
そもそもクラスが入ってなかったとか
マニフェストファイルで存在しないクラスを指定しているというような
実行不能な場合に
エミュは
javax.microedition.midlet.MIDlet.main(+38)
を吐く。
easyミスの可能性99%です。
ガンガレ ノシ

899 名前:コマンドライン開発の注意 [sage] 投稿日:04/08/02 08:57
@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
ガンガレ ノシ

900 名前:デフォルトの名無しさん [sage] 投稿日:04/08/02 17:31
アプリゲットにVアプリをアップしようとしてるんだけど
サイズが50k超える辺りで拒否られる。
なんでか教えてプリーズ

901 名前:デフォルトの名無しさん [sage] 投稿日:04/08/02 18:11
MIDlet-OCL: JSCL-1.1.0
MIDlet-OCL: JSCL-1.2.0


>>900
jadファイルにJSCLのバージョンかいてみたら?

902 名前:デフォルトの名無しさん [sage] 投稿日:04/08/02 18:47
>>901
サンクス!
それで通った、ということは
アプリゲットは俺に断りもなく審査の仕様変更したわけだな
そうかそうか・・俺は放置ですか・・
過去に通したやつまで通らないから
おかしいと思っていたんですがね・・o..rz

903 名前:デフォルトの名無しさん [sage] 投稿日:04/08/02 23:11
>>902
一応いっておくが、MIDlet-OCLの記述は必須だから、
今まで問題なく動いていたのがたまたまの偶然ということになる。
・・・まぁオレも人のこといえんのだが・・・

904 名前:デフォルトの名無しさん [sage] 投稿日:04/08/03 01:47
以前は任意の属性です。
たまたまの偶然などといい加減なことをいわないでください。

905 名前:デフォルトの名無しさん [sage] 投稿日:04/08/03 03:44
com.nttdocomo.ui.FontのgetLineBreakにかわるAPIはMIDPにもありますでしょうか?
それともsubstringWidthとかを使って自分でチェックするしかないのでしょうか?

906 名前:903 [sage] 投稿日:04/08/03 04:02
>>903
そだったっけ?
少なくともC4型仕様が一般に公開された時点では、ドキュメントに必須って書いてあったと記憶してたんだが、
P4型のみの時は必須じゃなかったのか。

>>905
たぶんsubstringWidth使わないとダメ。
今んとこ等角フォントばっかりだと思うから、等角フォント前提にすれば位置探す処理を簡易化できる。


907 名前:デフォルトの名無しさん [sage] 投稿日:04/08/03 05:38
「ありますでしょうか?」ってドコの国の言葉なの?

908 名前:デフォルトの名無しさん [sage] 投稿日:04/08/03 10:34
ようこそドコモの国へ

909 名前:デフォルトの名無しさん [sage] 投稿日:04/08/03 16:27
「在りますでしょうか」ってことだろ
日本語を読めない人もいるんだな

910 名前:デフォルトの名無しさん [sage] 投稿日:04/08/03 16:34
ございますか

911 名前:デフォルトの名無しさん [] 投稿日:04/08/03 17:06
ござる

912 名前:デフォルトの名無しさん [sage] 投稿日:04/08/03 17:14
日本語に、敬語を二重に使う用例は無いということだよ。


913 名前:デフォルトの名無しさん [sage] 投稿日:04/08/03 17:15
「ないのでしょうか?」とその後に聞いてるのだから、
「あるのでしょうか?」と聞けばよかったわけだな。

914 名前:デフォルトの名無しさん [sage] 投稿日:04/08/03 18:14
SH53の在庫ありますでしょうか?
てな感じで現実的には使われてますけどね、
文章にすると違和感ありますでしょう。

915 名前:デフォルトの名無しさん [sage] 投稿日:04/08/03 20:36
間違えだってことを知らないか、知っていてもつい使ってしまうんだろう。
ら抜き言葉と同じでもう世間に広まっちゃって修正できないことかもな。

916 名前:デフォルトの名無しさん [sage] 投稿日:04/08/03 20:58
文章で書くなら、「ございますでしょうか」の方が自然だよね。

917 名前:デフォルトの名無しさん [sage] 投稿日:04/08/03 21:09
>>916
それも日本語としてはおかしいぞ

918 名前:デフォルトの名無しさん [sage] 投稿日:04/08/03 21:35
日本語の乱れなんちゅうて流通したもん勝ちですよ。
清少納言が現代の日本語聞いたら
なんと言の葉の乱れたことよ、よよよ。
とさぞかし嘆くことでしょう。
食べられますか?なんて言ったら
国語の先生に「ら」が多いと怒られる日も
来るかもしれなくってよ?
ここは何のスレなんディスカ?

919 名前:デフォルトの名無しさん [sage] 投稿日:04/08/04 07:43
ここは何のスレだ

920 名前:デフォルトの名無しさん [sage] 投稿日:04/08/04 10:30
>>918-920
そう思うならスルーしる!!

921 名前:デフォルトの名無しさん [sage] 投稿日:04/08/04 10:37
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 を設定する
のでしょうか?

どうかご教授いただけますとありがたいです。

923 名前:922 [] 投稿日:04/08/04 12:57
922です。

上記の設定で間違いや足りない点等ございましたら、
ご指摘頂けますとありがたいです。

よろしくお願いいたします。

924 名前:デフォルトの名無しさん [sage] 投稿日:04/08/04 12:57
この流れで、「ご質問です。」と書かれると、ネタとしか思えんなあ。

925 名前:デフォルトの名無しさん [sage] 投稿日:04/08/04 16:35
>>922
いくらなんでも自分のすることに「ご」をつけるのはおかしいと気づかないのか?
自分に対して尊敬語っていうのは相手に対して謙譲語と同じレベルだぞ?

926 名前:デフォルトの名無しさん [sage] 投稿日:04/08/04 17:06
空気を読んで軽くボケた>>922>>925がマジレスして
空気を凍らせてしまっているようにも見える。
ここは難しいインターネッツですね。

927 名前:デフォルトの名無しさん [] 投稿日:04/08/04 17:34
>926
そのようですね。

>925
ここで「ご」についてだけ書き込みするなら、いちいちうるさいですよ。
意味は通じてるはずですからね。


928 名前:デフォルトの名無しさん [] 投稿日:04/08/04 17:48
922の 「ご質問です」は、だんだんと一般化していくのかも。

これ読んでみて。
ttp://home.alc.co.jp/db/owa/jpn_npa?stage=2&sn=79

929 名前:デフォルトの名無しさん [] 投稿日:04/08/04 17:49
ところで、1000になる前に922の質問内容に答えてあげたらどうなの。

930 名前:デフォルトの名無しさん [sage] 投稿日:04/08/04 21:36
Micro3D V3を使っていて、
複数のモデルを描画したいんだけど、具体的にどんな手順を踏めばいいの?

ちなみに、1つのモデルを描画、2つのモデルを同一座標に描画はできました。

モデル自身が持っている座標を変える方法が分からなかったので、
ViewMatrixに平行移動を無理やり合成して、1つ描画するたびにViewを更新、
2回に分けて描画したら、2回目のほうによってしまいました。これは間違いだった模様・・

やはり、Figureの内部に座標を持っているとして、その座標をいじらないといけないのでしょうか?
それとも、低レベルライブラリを利用して自分で作らないと駄目?

教えてえらいひとー


931 名前:デフォルトの名無しさん [sage] 投稿日:04/08/04 23:49
>>930
iアプリでの経験だけど、

1)単位行列を用意
2)スケーリング
3)回転
4)平行移動
5)ビューポート変換

の順で変換行列を作って、Graphics3D#setViewTrans()でMicro3Dの変換行列
自体に設定した上でGraphics3D#renderFigure()してやることでできることはできた。

ただ、動くんだけど釈然としない方法ではあるので、他にもっといい方法があるかも。

932 名前:デフォルトの名無しさん [sage] 投稿日:04/08/04 23:55
>>931

ありがとう、とりあえずは実績のあるその方法でチャレンジしてみるよ、ママン


933 名前:デフォルトの名無しさん [] 投稿日:04/08/05 00:40
MIDP1.0 で、PNGファイルを実行時に編集することは可能でしょうか?
例えば、PNGファイルを読み込んで、上下反転とか、画像サイズを2倍にしたりとかってことなんですけど、、、
どなたかサンプルキヴォンヌ

また、resフォルダにBMPファイルを入れて置き、
実行時に BMP -> PNG と変換して、表示させるようなことをしてる方はいらっしゃいますか?


934 名前:デフォルトの名無しさん [sage] 投稿日:04/08/05 00:45
>933
>PNGファイルを読み込んで、上下反転とか、画像サイズを2倍にしたりとか
MIDP1.0の範囲内では無理。
読み込んだ画像に文字を入れる、くらいなら可能だけど。
(Image#getGraphics()でGraphicsインスタンス取って(ry )
BMPをPNGに変換するのは……やってできんことはないかもしれんが、
多分エンコーダで20kは食う。素直に開発機上でPNGにしなされ。

935 名前:デフォルトの名無しさん [sage] 投稿日:04/08/05 00:52
>>933
できるかできないかということなら、できないということはない、ってとこかな。
PNGのバイナリデータを直接いじる必要があります。
JSCL1.2ならImageに読み込んで、描画する際にいろいろできるけど。

わざわざBMPからPNGに変換してるような変な人はいないと思われ。

936 名前:デフォルトの名無しさん [sage] 投稿日:04/08/05 02:26
>>934,935
純粋なMIDP1.0だけではやはり無理ですか。

ただ、画像ファイルがいっぱいあり、どうにかしてアプリサイズを小さくしたくて、
実行時に画像ファイルを作り出すようなことをしようと思っております。
幸い、左右対称、上下対象な画像データが多いので、どちらか半分だけ画像データとしてもっておいて、
実行時に反転して読み込んで一枚の画像にしようかと、、、

その際、PNGデータを直接扱うよりかは、BMPの方が簡単そうなので、
BMPで元データを作って、実行時にPNGデータを作り出すのはどうだろうか?
と考えた付いた次第です。

みなさんは、大量にデータファイルがある場合にどうやってアプリサイズを小さくしているのでしょうかねぇ・・


937 名前:デフォルトの名無しさん [sage] 投稿日:04/08/05 03:11
どんなにたくさん画像使ってんだろ。
VならとっととSprite使うのがいいな。

938 名前:デフォルトの名無しさん [sage] 投稿日:04/08/05 05:08
>>922
その質問は、Javaではなく、HTTPの質問ってこと?
設定するってのは、リクエストのAcceptヘッダと
レスポンスのContent-Typeヘッダのことだよね?

application/java や application/java-archive は Java。
テキストなら text/* 、イメージなら image/* などになる。

あと、VはDと違って、TCP/IP上のHTTPのはずだから、
特別なことはないと思う。でもゲートウェイが邪魔することはあり。


939 名前:デフォルトの名無しさん [sage] 投稿日:04/08/05 05:21
>>936
サイズを小さくするのに BMP を使うって、なぜ?
BMPの方がでかくない?

どんな画像データか知らないけど、プログラムで描けないの?


940 名前:デフォルトの名無しさん [sage] 投稿日:04/08/05 07:38
>>936
容量制限ギリギリの攻防でないならアプリサイズを小さくする努力はしない。
画像ファイルが多くて容量の関係からリソースに含めきれない場合、
アプリ起動後にサーバから取得してストレージ領域に保存する。
画像は基本的にPNGフォーマット。

いくら線対称な画像だろうと内部で生成することは考えない。
90度単位の回転、上下反転、左右反転で使い回せる画像なら
正位置の画像だけ持っておき、描画時にそれらの操作を指定して表示する。
もちろんauやVodafoneが用意している拡張Graphicsクラスを使ってだ。
自分の場合はMIDP1.0のみにこだわる必要がないのでこのようにしている。

941 名前:デフォルトの名無しさん [sage] 投稿日:04/08/05 09:23
>>936
透過属性がなくてもいいなら、
Image.createImage(w, h)
で動的に作り出せるよ。

あとスピードを求めないなら、左右対称とかは楽勝だけど。
1ドット幅づつ逆からdrawImageしていけばいい。

942 名前:デフォルトの名無しさん [] 投稿日:04/08/05 09:32
VアプリにてPNGを仮想画面(drawBackgroundで描画する領域)に描画することは
出来るのでしょうか?
出来るのなら方法を教えてください。


943 名前:デフォルトの名無しさん [sage] 投稿日:04/08/05 10:12
Vアプリ開発ガイドによると
C型だとACanvas、P型だとSpriteCanvasでpaint()をオーバーライドすれば
Graphicsメソッドを呼び出せるらしいです。
注意点が幾つかあるようなのでガイドを参照した方が良いと思う。


944 名前:デフォルトの名無しさん [sage] 投稿日:04/08/05 10:17
ガイドは
http://developers.vodafone.jp
のVアプリ開発ガイド[開発編]
http://developers.vodafone.jp/dp/tool_dl/download.php?docid=302
です。


945 名前:デフォルトの名無しさん [] 投稿日:04/08/05 10:18
iアプリだとカメラ画像を読み込んでアプリの背景等にdrawImageをすることができるのですが、
Vアプリでも同様なことができるのでしょうか?
サンプルサイト等ご存知でしたら教えて下さい。


946 名前:デフォルトの名無しさん [sage] 投稿日:04/08/05 10:38
>>945
SpricateCanvasのpaintのGraphicsに対する描画は背景になされるので、
paintでGraphicsに描画後copyAreaで転送して、
フレームバッファでさらに加工してdrawFrameBufferすればOK


947 名前:945 [sage] 投稿日:04/08/05 10:50
>>946
レスありがとうございます。
私は942の方とは別人です。
カメラ画像のファイル名選択および読み込みの部分はご存じないでしょうか?


948 名前:922 [] 投稿日:04/08/05 14:13
938さん レスありがとうございます。

サンプルプログラムがあるサイトなど、
ご存知でしたらリンク貼って頂けますと助かります。


949 名前:デフォルトの名無しさん [sage] 投稿日:04/08/05 17:21
VODAで、アプリからクリップボードにテキストをコピーする方法ってないですか?
VODAのJAVADOC探してるんですが見つけられません。


950 名前:デフォルトの名無しさん [sage] 投稿日:04/08/05 17:36
>>949
ありません。

951 名前:933 & 936 [sage] 投稿日:04/08/05 23:07
みなさん、レスありがとうございます。

>>937
>VならとっととSprite使うのがいいな。

残念ながら、SprintPCSなんです。

>>939
>サイズを小さくするのに BMP を使うって、なぜ?
>BMPの方がでかくない?

確かに元データはでかいですけど、JARにすれば小さくなるので、
ひとまずOKかな、と。
まずは実行ファイルサイズ容量をどうにかするのが先決なので、、
その後、ヒープが足りなーいとなるのかもしれませんが orz..

>>940
>画像ファイルが多くて容量の関係からリソースに含めきれない場合、
>アプリ起動後にサーバから取得してストレージ領域に保存する。

これが有力候補ですね。

>>941
>透過属性がなくてもいいなら、

残念ながら透過属性が必要なんですよ。。


952 名前:デフォルトの名無しさん [sage] 投稿日:04/08/06 00:36
>>951
普通に考えてBMPをJarに入れたとき、PNGより小さくなるとは思えないよ。
PNGの圧縮は効率が良くなるようにフィルタ処理も加わるから、大抵素の物をdeflateするよりは小さくなるの。
Jarの圧縮によっぽど優秀なdeflateツールを使って、PNGのツールがヘタレなら逆転するかもしれないけど。

953 名前:946 [sage] 投稿日:04/08/06 00:52
>>949
機種依存になるかもしれないけど、
東芝機種はTextFieldなどでユーザに文字入力をしてもらっている画面でコピーができるので、
ユーザに手動でコピーしてもらえる環境を用意することはできる。
あんま使えんけど。

>>947
なら、CameraConnectionとStorageConnectionのクラス概要くらい嫁。

>>951
試しに、BMPをzip圧縮してみ。
どれだけ使えないかがわかる。
とっととPNGにしる。


954 名前:デフォルトの名無しさん [sage] 投稿日:04/08/06 08:36
俺は1ドットずつ打つ処理を高速化するために、バイト配列→無圧縮PNGやってた。

>>953
携帯で使うサイズくらいならPNGファイルよりもBMPのときの方がいい場合が多いよ。
余計なヘッダないし。

955 名前:デフォルトの名無しさん [sage] 投稿日:04/08/06 08:40
使うグラフィックを大きな画像一つにまとめて、Imageの切り出しで使うってのはどうなんだろ。

956 名前:デフォルトの名無しさん [sage] 投稿日:04/08/06 08:58
>>955
そこが不思議なんだよな。
大きな画像1つにまとめた段階で、透過属性がなくなってしまうのだが…。

957 名前:デフォルトの名無しさん [sage] 投稿日:04/08/06 12:30
まとめた段階でというか、切り出したときに透過属性が付加されないんでしょう。

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から除去したいのです・・・


959 名前:デフォルトの名無しさん [sage] 投稿日:04/08/06 18:24
バッチファイルで
resフォルダをcopy、
コピったフォルダから.svnフォルダ削除、
jar -C コピッたフォルダ
削除 /Q コピッたフォルダ
むにゃむにゃ。元通り。jarゲット。なんてね

960 名前:デフォルトの名無しさん [sage] 投稿日:04/08/06 18:29
eclipse は楽でっせ

961 名前:デフォルトの名無しさん [sage] 投稿日:04/08/06 18:38
eclipse起動遅いからイヤン

962 名前:デフォルトの名無しさん [sage] 投稿日:04/08/06 20:13
うちは、
resOrgフォルダっての作って、そこをSubversionの対象にして
resフォルダは対象外にしてる。
で、バッチファイルでresOrgからresにコピーしてから、jarを作成するようにしてる
これじゃめ?

963 名前:962 [sage] 投稿日:04/08/06 20:16
あ、結局リソースを削除したときに残るから
make前にresフォルダ内をクリアしてるわ

やってることは、959とほぼ一緒でした。

964 名前:デフォルトの名無しさん [sage] 投稿日:04/08/06 20:33
>958
antのjarタスクで、filesetのexclude使えば解決。

965 名前:デフォルトの名無しさん [sage] 投稿日:04/08/06 21:46
そろそろ次スレ準備?

966 名前:デフォルトの名無しさん [sage] 投稿日:04/08/06 22:21
立てたっす
CLDC+MIDP+携帯電話用Javaスレッド part 3
http://pc5.2ch.net/test/read.cgi/tech/1091798483/

967 名前:デフォルトの名無しさん [sage] 投稿日:04/08/06 22:40
>>966
乙!

968 名前:951 [sage] 投稿日:04/08/07 00:10
>>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で実行時に画像ファイル作成されたんですね!
実機での調子はいかがでしたか?
メモリ使用量、読み込み、表示レスポンスなど、問題なかったでしょうか?