iアプリ:スクラッチパッド
お世話になっております、dwtです。
テキストやWEB片手に独学でiアプリ開発をやっているのですが
どうしても解決できない点があり質問させて頂きました。
現在、Eclipseを用いて開発していて
エミュレータ上では意図する通り動くのですが
実機(SO506iC)では上手く動作しません。
動作させたい流れは以下となっております
初回起動かを確認
↓
特定のフラグが0なら初回読み込みと判定
WEBから画像をDLしスクラッチパッド2に保存
↓
読み込み済みフラグを書き込み
↓
その他の処理
という流れを行っているのですが
実機ではスクラッチパッドが書き込まれていないのか
常に初回起動扱いの動作をします。
読み込み部
//-----------------------------------------
os_in = Connector.openInputStream("scratchpad:///0;pos=0");
byte_data = new byte[1];
int_size = (int)(os_in.read()&0xEF);
byte_data = new byte[int_size];
os_in.read(byte_data);
str_retdata = new String(byte_data , 0 , int_size );
WEBから画像を取得しスクラッチパッド2に画像を保存する処理
//------------------------------------
(コネクト部字数制限により略)
OutputStream out = Connector.openOutputStream("scratchpad:///2;pos=0");
byte[] byte_buf = new byte[1000];
while(( int_size = in.read(byte_buf)) != -1)
{
out.write(byte_buf,0,int_size );
}
また次の点も解決できずにいます。
・gif画像を90kb程度のサイズにした場合、最初の画像表示部でエラー停止してしまう
→画像サイズに制限?
・スクラッチパッド0のデータを読み込む際
最後まで読み込めず途中で途切れてしまう。
スクラッチパッド0のデータを途切れる事なくSTRING型に格納する良い方法は…?
何かご存知の方がいらっしゃいましたらお願いします。
補足
返信が遅くなってしまってすいません。 回答ありがとうございます!! TextAreaのようにTextboxで表示させることはできるのですが、表示だけさせたいのでユーザーが入力できるようにはさせたくなくて… 同じ画面にラジオボタンを使用したいため、Panel型で考えています。 多分そのLabelを必要行数用意する方法なのかなと考えて、 public void downData(String url) { HttpConnection httpConn; InputStream iStream; try { httpConn = (HttpConnection)(Connector.open(url, Connector.READ)); httpConn.setRequestMethod(HttpConnection.GET); httpConn.connect(); iStream = httpConn.openInputStream(); ByteArrayOutputStream bytearrayout = new ByteArrayOutputStream(); byte[] buf = new byte[1024]; iStream.close(); String str = bytearrayout.toString(); bytearrayout.close(); saveData(str); }catch (Exception e){ } } public void saveData(String str) { try{ DataOutputStream dataOS = Connector.openDataOutputStream("scratchpad:///0"); dataOS.write(1); dataOS.writeUTF(str); dataOS.close(); }catch(Exception e){} } public void saveData2(String str) { try{ DataOutputStream dataOS = Connector.openDataOutputStream("scratchpad:///0;pos=60"); dataOS.write(1); dataOS.writeUTF(str); dataOS.close(); }catch(Exception e){} } public void saveData3(String str) { try{ DataOutputStream dataOS = Connector.openDataOutputStream("scratchpad:///0;pos=116"); dataOS.write(1); dataOS.writeUTF(str); dataOS.close(); }catch(Exception e){} } public String loadData() { String str = ""; try{ DataInputStream dataIS = Connector.openDataInputStream("scratchpad:///0;pos=1"); str = dataIS.readUTF(); dataIS.close(); } catch(Exception e) {} return str; } public String loadData2() { String str = ""; try{ DataInputStream dataIS = Connector.openDataInputStream("scratchpad:///0;pos=60"); str = dataIS.readUTF(); dataIS.close(); } catch(Exception e) {} return str; } public String loadData3() { String str = ""; try{ DataInputStream dataIS = Connector.openDataInputStream("scratchpad:///0;pos=116"); str = dataIS.readUTF(); dataIS.close(); } catch(Exception e) {} return str; } } の方法で表示は出来ましたが、この方法だと一部分だけ表示させるというのではなく指定したアドレスからそれ以降の内容が表示されてしまって…。 スクラッチパッドで読み込む際に、内容全てを読み込むのではなく一部分だけ読み込むというのはできないのでしょうか? 質問が長くなってしまいましたが答えていただけたら嬉しいです(;д;)