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

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

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

DoCoMo以外は下記スレへ。

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

過去スレ
Part 1 http://piza2.2ch.net/tech/kako/975/975428633.html
Part 2 http://pc3.2ch.net/tech/kako/1000/10007/1000723476.html
Part 3 http://pc2.2ch.net/test/read.cgi/tech/1040898596/
Part 4 http://pc5.2ch.net/test/read.cgi/tech/1067139509/
Part 5 http://pc5.2ch.net/test/read.cgi/tech/1084246226/
Part 6 http://pc5.2ch.net/test/read.cgi/tech/1091286071/
0232デフォルトの名無しさんNGNG
スクラッチパッドに保存したGifデータを読み込むメソッドを使ったのですが、
動作確認実機SH900iでは動くのですが、N900iではエラーが出るのです、
もしN系開発してる人いたらよろしくです。

/**
* 画像をスクラッチパッドよりロードする。
* 引数spnoにスクラッチ番号、indexは読込開始位置。
*/
Image loadImage(int spno,int index){
MediaImage mdi = null;
Image image=null;
try{
mdi = MediaManager.getImage("scratchpad:///"+spno+";pos="+index);
mdi.use();
image=mdi.getImage();
}catch(Exception e){
System.out.println("画像呼び出しエラーloadImage()");
image=Image.createImage(300,480);
}finally{
return image;
}
}

もしもネットからダウンロードしたデータがスクラッチパッドに保存していないのであっても、
返すImageオブジェクトを用意したのですが、「java.lang.NullPointerException 画像呼び出しエラーloadImage()
」で止まってしまうようです。
Image.createImage()の使い方も間違ってるのでしょうか…
0233232NGNG
↑すんません、うまく入れ子なってませんね;
0234デフォルトの名無しさんNGNG
>>231
CLDCのInputStreamのリファレンス見るとmark/resetは「何もしない」のが正常とのこと
0235デフォルトの名無しさんNGNG
>>232
300x480が大きいとかいう話じゃない?
0236デフォルトの名無しさんNGNG
ういす。

iαppli Development Kitで開発してるんだけど、
エミュレータ−上でちゃんと動作するモジュールが
実機上で「ソフトに継続動作できない障害が発生しました」となって
起動直後に落ちるんだが、これについて情報無い?
無いでしょうか。
有ったらいいな。

0237236NGNG
エラー原因調べたらどうもconnector.openに有るっぽい。
機種はN900i

誰かここの過去ログpart5の132のレスをコピペしてくれ〜。
どうやらそれが俺の望んだ回答らしい。頼む。
0238デフォルトの名無しさんNGNG
>>232
N900iでは、Imageオブジェクトのサイズは横縦320ドットまでだ。

GIFデータがもしその制限を越えているなら、
mdi.use(); の時点で、例外が発生し、
そしてcatch節が実行され、
そこの、createImage(300,480) で再度例外が発生。

そしてとまってしまう。
0239227NGNG
自分のも頼みます。検索しても504シリーズとかしか出ないつд`)
0240デフォルトの名無しさんNGNG
>>239
いや、基本的に504シリーズとおんなじだから(;´Д`)

>>237
ttp://makimo.to/2ch/pc5_tech/1084/1084246226.html
ほい。
132からリンクされてる115は私の書き込みだw
0241227NGNG
スマンソン、3Dは504時代から大して進化してないのねん…
0242236NGNG
>>240
すごいありがとうを君に。

でも、原因違ったよ……。
ボクのあぷり、起動で落ちてるから……。
0243デフォルトの名無しさんNGNG
実機テストで、ADFのトレスモードをONにすると例外の詳細が表示される>N900i
0244デフォルトの名無しさんNGNG
>>234
ImageStore経由で取得したInputStreamとあるから
InputStreamのmark/resetは関係ないだろ。
(そもそもInputStreamはabstract)
0245236NGNG
>>243
進んだよ!

AnchorButtonを継承してたよ。final classなのに!
恥ずかしい…。とても恥ずかしい…。
何故エミュレータ−で動いてるのか謎だ。
0246232NGNG
>235・238
うお、そうなのか。ありがとうー。
スクラッチパッドナンバー1つに対して1つの画像(1つのGIF)っぽかったから、一つの画像ファイルにまとめちゃった;
でも、スクラッチパッドの呼び出し引数に
scratchpad:///"+スクラッチパッドNO+";pos="+開始位置"
の後に、読み込む量みたいなのもあったような・・・
0247デフォルトの名無しさんNGNG
> の後に、読み込む量みたいなのもあったような・・・

あるよ
付けないとN,P900iはメモリ不足になりやすい
開発ガイド嫁
0248デフォルトの名無しさんNGNG
APIリファレンスにも、
CLDCにも、なかった
ButtunかLabelの色を変える方法を教えてください!
0249前スレの人@多分881NGNG
です。
0250デフォルトの名無しさんNGNG
>>248
クラス com.nttdocomo.ui.Component から継承したメソッド
をよく読め
0251前スレの人@多分881NGNG
>>250
詠んで寝ます。
続きは明日やろうっと (= ̄∇ ̄=)
0252デフォルトの名無しさんNGNG
携帯からIDとパスワードを入力して
合っていたら動作するアプリを作りたいんですけど
どんな感じで攻めてったらいいでしょうか?
0253デフォルトの名無しさんNGNG
>>252
spにID+pass書き込んだら?
id+passが書き込まれてなかったら、入力Panelでも出すとかな。
0254デフォルトの名無しさんNGNG
>>253
説明不足でしたごめんなさい
サーバーと連携を取ってサーバー上で会員制のログインシステムをつくってるんですけど
それを携帯からもログインできるようにしたいんです。

POSTを使ってできるみたいなんですが
具体的にどうすればいいのかが見当つかなくて
0255デフォルトの名無しさんNGNG
サーバーにIDとpass送って、サーバーからOK/NG返せばいいじゃん。
0256デフォルトの名無しさんNGNG
ブラウザでやるのとほとんど一緒
iアプリの本とCGIの本読んで勉強汁
0257デフォルトの名無しさんNGNG
InputStreamにPOST内容をぶちこんで
Outputから嫁ばいいんじゃないんのか?
0258デフォルトの名無しさんNGNG
WEBからtextファイルを読み込んで携帯で表示しようとしてるんですけど
文字化けしてしまいます。読み込んだファイルの内容を配列pに格納して

byte[] strResult = p.getBytes("SJIS");

をしてもエラーで動いてくれないんですけど間違ってるでしょうか?
0259デフォルトの名無しさんNGNG
何したいのかワカランが、これでいいんじゃないの?

String(byte[] bytes)
プラットフォームのデフォルトの文字エンコーディングを使って、
指定されたバイト配列を変換することによって新しい String を構築します。
0260デフォルトの名無しさんNGNG
>>259
byte[] p = new byte[(int)httpconnection.getLength()];
で定義した配列に
inputstream.read(p);
で読み込んでるのをテキストボックスに表示してるんですけど
文字化けしてしまうのでどうしたらいいのかわからないんです。
読み込んでるのはテキストファイルです。
0261227NGNG
まことに申し訳ないのだが、3Dアプリ制作の良いサンプルのあるサイトを教えてくれないかい?
0262初期不良NGNG
InputStreamReader 通せば化けないです
0263デフォルトの名無しさんNGNG
>>262
すいませんけど、具体的なやりかたを教えてもらえないでしょうか
0264デフォルトの名無しさんNGNG
>>261
素直に本買った方がいいと思うけど。
0265初期不良NGNG
>>263
InputStreamReader の使い方なんてぐぐればすぐ見つかるだろう。
0266デフォルトの名無しさんNGNG
スクラッチパッドにデータ保存してる時に、
ナウローディングの%を表示したいです。
でもどうすれば良いか解りません(;´Д`)
今は読み込み中の文字表示しかしてないです。
0267デフォルトの名無しさんNGNG
おそらくfor文使っているだろうから、そのループの最後にdrawString(drawRect)する。
%表示なら割り算する。
0268デフォルトの名無しさん05/01/17 10:27:41
>>266
過去ログあされば出てくるよ。根気よく探してみれ。
0269デフォルトの名無しさん05/01/17 12:18:34
505では正常にダウンロードできるアプリが900シリーズだと
ダウンロードできない症状に遭遇したひといますでしょうか?
ダウンロード時ADFを検査するときにADFが間違っているとでて
はねられてしまうような感じです。
0270デフォルトの名無しさん05/01/17 12:36:05
ADFが間違ってるんでしょ
TargetDevice を調べなさい
0271デフォルトの名無しさん05/01/17 13:05:44
TargeDeviceなど機種を制限するような情報は書いていないんです。

LastModified = Wed, 25 Aug 2004 17:11:12
SPsize = 500
AppClass = xxx
UseBrowser = launch
AppTrace = on
AppName = xxx
PackageURL = xxx.jar
AppSize = 18954

こんなかんじで特別変わったことはしてません。
とくにプリミティブな3Dをつかったときに起こるような気がします。
でも505シリーズでは普通にダウンロードできます。
0272デフォルトの名無しさん05/01/17 13:20:23
じゃ携帯電話の故障だな
0273デフォルトの名無しさん05/01/17 13:34:19
>>269
全機種で調べた?
027426905/01/17 14:09:03
>>273
N900iとP900iはダメ
D900i,SH900iはOK
のようです。
0275デフォルトの名無しさん05/01/17 14:14:29
>>274
もしかして、またアレか
SPsize=409600
0276デフォルトの名無しさん05/01/17 14:18:07
AppName = xxx
怪しいのはここくらいしか無い
文字コードが変とか、変な文字入れてるとか、長すぎるとか
0277デフォルトの名無しさん05/01/17 15:00:11
>>276
そうだな。
とりあえずASCIIだけにして試してみるのがいいかも
027827305/01/17 15:02:19
>>276
もしかしたらそうかも
3DゲームなんでAppNameが「3D○○○○○」(○の所は日本語、全て全角で全体で7文字)
ADFはiappli tool kit 3.0で普通に設定したものです。

とりあえず名前変えてためしてみます。
0279デフォルトの名無しさん05/01/17 15:18:00
す
0280デフォルトの名無しさん05/01/17 16:12:25
質問なんですが、iアプリのネイティブアプリケーション連携で
iアプリからiアプリを起動したいのですが、どうやればいいのでしょうか?

それとAPIリファレンスを見てApplicationStoreクラスというのがありましたが、それはランチャー起動用と
書いていましたが、これはトラステッドiアプリ用、ということでしょうか?


参考サイトかヒントでもよいのでご教授よろしくお願いいたします。
0281デフォルトの名無しさん05/01/17 16:28:35
>>280
IApplication.launch(int target,String[] args)
028228005/01/17 16:34:39
>281
ありがとうございました!
よくよく見たらAPIリファレンスのApplicationStoreクラスのところに
launchへのリンクがありました…。
もう少し注意深く見るようにします。
0283デフォルトの名無しさん05/01/17 17:07:37
開発ガイドの詳細編読めよ
サンプルコード付きで全部出てるから
028428005/01/17 19:40:31,
>283
>開発ガイドの詳細編
はい、目を通しておきます!
0285デフォルトの名無しさん05/01/17 23:13:27
こんばんは。
えっと、iapplitool使ってアプリ作ってるんですけど
wav2mld使って作ったmldが鳴らないんです。
midiから作ったmldは鳴るんですけど。
何か注意点とかあります?
あと、ドコモの携帯を持ってないので実機確認はできないです。
028628505/01/17 23:18:58
あ、wav2mldに付いてたmfi2voiceでは鳴ってます。
どなたかお助けください。
0287デフォルトの名無しさん05/01/18 00:22:00
エミュ上では鳴らない。というか鳴らせない。
0288デフォルトの名無しさん05/01/18 04:18:35
着信時のような無限ループ再生ってできないんでしょうか。
鳴りおわり検出してからではセットアップ小節のぶんどうしても無音になるし、
キューポイントとか全く使えないし。

そのくらいの動作はAPIでできるだろうとたかをくくっていたら見つからなくて
ちょっと焦っている。
0289デフォルトの名無しさん05/01/18 06:23:42
セットアップ小節無くせば?

ループはメタイベントでやるらしいよ
詳しい事は知らんし、多分仕様は一般には非公開だと思うから諦めろ

ttp://pc5.2ch.net/test/read.cgi/dtm/1042485105/531
>ループさせる時はメタイベント使ったりもしるんだけど、SMAFの場合START
>とENDしか使えんからなあ。まあ、気にしなくて無問題。
>ちなみにドコモ系だとQ=00〜とかL00=〜とか入れたりしてます。
0290デフォルトの名無しさん05/01/18 10:32:56
普通はセットアップ小節のないメロディを作って使用する
漏れはAUDIO_COMPLETEイベントが出たらまたplay()する
0291デフォルトの名無しさん05/01/18 11:19:36
俺も>>290と同様にやってる。特に気にならない。
少し止まってる気もするが音楽と同期する処理でもない限り平気、気にならない。
んなとこ気にしてたら他のとこも気になって先に進めないし。

あと、JAR自体にMLDを入れてるならMLDの容量限界(10kbだっけ?)まで
内部で複製して長くしておくってのも手。JAR内部なら圧縮でほとんど容量増えないし
スクラッチにZIP圧縮して読み込ますよりも早いし手軽だ。
0292デフォルトの名無しさん05/01/18 11:52:50
質問失礼します。
録音ってできるのでしょうか?
録音=携帯端末(iアプリ上)での人間の声の録音です。
機種依存が無い事が前提条件ですが、可能でしょうか?
0293デフォルトの名無しさん05/01/18 11:57:38
>>292
APIリファレンス10000回読め。
0294デフォルトの名無しさん05/01/18 13:16:26
>>293
292じゃ無いけど、リアルタイムに音声を処理する能力は無いのな。
ある一定の周波数だけに感応するアプリとか作れないのな。
0295デフォルトの名無しさん05/01/18 13:20:09
エミュレータ同士のIr通信が出来ねぇ。
サブマシンでやってみると出来る。
機種依存か?赤外線ポート持ってるPCだと本物のポート叩くから動かないのか?
なんじゃこりゃ。

0296デフォルトの名無しさん05/01/18 13:50:11
>>295
>>218-220
0297デフォルトの名無しさん05/01/18 14:10:54
>>296
>>295はそれができないって言ってるんじゃないの
本物のポートたたいてるかどうか実機で見てみたら?
0298デフォルトの名無しさん05/01/18 15:11:26
× IR付きPC上でエミュレータ二つ起動して通信
○ IR無しサブマシン上でエミュレータ二つ起動して通信
○ 携帯二台にダウンして通信

デバイス使用不可にしても、irmon切ってもだめだ。
わけわかめ〜。
わけわかめ〜。
0299デフォルトの名無しさん05/01/18 15:48:26
なんだろうな
ポート650が既に他で使われてるとか?
0300デフォルトの名無しさん05/01/18 16:32:19
たまにスクロールバーがついてるアプリを見かけるんですけど、あれってどうやってつけるんですか?
0301デフォルトの名無しさん05/01/18 16:41:12
根性で
0302デフォルトの名無しさん05/01/18 16:49:07
コンジョだ、コンジョー
0303デフォルトの名無しさん05/01/18 17:00:14
>>299
650使うのか。知らんかった。
まあ、netstatでも650は別に使われてないな。
わかんね。降参。
0304デフォルトの名無しさん05/01/18 20:14:27
>>292
いまのところ録音はない。

>>300
自前でスクロールバーを実装したのでわ?
0305デフォルトの名無しさん05/01/18 23:28:32
>>301-302>>304
よくわかりました 自力でつけてみます
0306デフォルトの名無しさん05/01/19 00:33:32
>>287
さんくす。
やっぱ実機ないと開発きついね。
0307デフォルトの名無しさん05/01/19 02:12:03
substring()みたいに文字列から一部を切り出すメソッドってありますか?
0308デフォルトの名無しさん05/01/19 02:53:00
>>307 なぜString.substring()を使わない?
0309デフォルトの名無しさん05/01/19 03:56:37
SH901iCの音声データってSH900iと互換ないのでしょうか(3Dサウンドだから??)
アプリで鳴らそうとしているのですがSH901iCで鳴らんと報告を受けました。
何か知っていたら教えてくださいませ。
0310デフォルトの名無しさん05/01/19 10:00:14
>>309
互換性はないので、SH901iC用にコンバートしてやる必要がある。
0311デフォルトの名無しさん05/01/19 10:10:49
>>310
レス、サンクスです。
wav2mldってまだ対応してないですよね?
SH901iCへの変換ができる変換ソフトで
オススメなものがあれば教えてください
質問連発スマソ
0312bus05/01/19 19:41:53
stringで取得した文字をchar配列に変換するやり方がわかりません
わかる方がいれば教えてください
0313デフォルトの名無しさん05/01/19 19:45:51
>>312
String s = "...some string...";
char[] chars = new char[s.length()];
s.getChars(0, s.length(), chars, 0);
0314デフォルトの名無しさん05/01/20 16:08:24
TextBoxで取得した文字を配列に格納するやり方を教えてくださいませ
お願いします
0315デフォルトの名無しさん05/01/20 16:18:24
>>314
TextBox.getText()してから>>313
0316bus05/01/21 17:33:39
>>313
返信ありがとうございます、やったとおりにやったらできました。
おかげさまで助かりました
0317デフォルトの名無しさん05/01/21 19:11:16
TextBoxの入力モードを数字とアルファベットのみに制限したいのですが
どうしたら良いのか教えてください。
0318デフォルトの名無しさん05/01/21 19:29:12
>>317
setInputMode()でよいのでわ?
http://www.ep.u-tokai.ac.jp/~nakazato/API/504i/base/jguide504_apiref020517/javadoc/com/nttdocomo/ui/TextBox.html#setInputMode(int)

ただ「数字だけ」「アルファベットだけ」はできるけど、
「数字とアルファベットだけ」は無理っぽい。
0319デフォルトの名無しさん05/01/21 21:45:22
機種を識別する関数とかありませんか?
0320デフォルトの名無しさん05/01/21 23:26:02
iアプリコンテンツ開発ガイド for DoJa-4.0 詳細編を読みやがれ。
つか、ぐぐればでてくる。
0321デフォルトの名無しさん05/01/22 00:19:23
>>318
すいません、誤解を招く書き方でした。

例えば、setInputModeで初期入力モードをTextBox.ALPHAに設定しても
入力中にユーザーが入力モードを変えてしまえば漢字なども入力
できてしまいますよね。それを制限したいのです。
こういうことはできないんでしょうか。
0322デフォルトの名無しさん05/01/22 00:34:12
>>321
方法ナシ。
0323デフォルトの名無しさん05/01/22 00:39:43
>>321
注意書きとか添えるぐらいでいいんでねぇ。
0324デフォルトの名無しさん05/01/22 00:54:05
>>320
あんがと!おかげさまでわかりましたけどいっぱいあるのね・・・orz
0325デフォルトの名無しさん05/01/22 09:18:01
Doja3.5のエミュレータで動くアプリがDoja-4.0のエミュレータだとうまく動作しません。
具体的にはキーが効かなかったり、動きが遅かったりします。
ですが、全てのアプリで動きがおかしいのではなく、特定のアプリでだけ起こります。
このような症状になられた方いませんか?
0326デフォルトの名無しさん05/01/22 10:12:36
iアプリでポリモーフィズム使ってる人いる?
容量とか処理速度とか問題にならない?

iアプリを外注したらif文だらけのコードがあがってきたんだが、
これって普通?
0327デフォルトの名無しさん05/01/22 10:27:32
>>322
>>323
そうですか・・・。ありがとうございます。
0328デフォルトの名無しさん05/01/22 12:14:46
>>326
classファイル1つにつき数百バイトのオーバーヘッドがでるから、サイズの点で不利。

if〜else if〜else ifってするよりもif〜if〜if〜って書いたほうがバイトコードは小さくなるから、
elseが付いていないなら良い仕事だと思っていいよ。付いていた場合は並。
0329デフォルトの名無しさん05/01/22 14:35:06
一件初期化してない変数を使ってたり、forループを逆方向に回してたらプロですかね。
嫌な世界だ。
0330デフォルトの名無しさん05/01/22 16:46:58
>>326
Javaからかけ離れた実装にすると容量を節約できるのと、
クラスライブラリがお世辞にもOOを考えて作られていなかった、
という事情からか、iアプリのコードにはヘンなものが多いです。

容量を重視しないなら、Javaっぽく書いた方がいいと思うけどね。
0331デフォルトの名無しさん05/01/23 01:50:49
>>330
昔と最近で、クラスライブラリ設計方針が変わってきたような気がする。
■ このスレッドは過去ログ倉庫に格納されています