私のスクリプトは、httpConnection を介して xml を取得し、永続ストアに保存します。問題ありません。次に、保存されたデータをループして、キュー経由で取得する画像 URL のリストを作成します。
これらの各リクエストは、httpConnection スレッドを呼び出します。
...
public synchronized void run()
{
HttpConnection connection = (HttpConnection)Connector.open("http://www.somedomain.com/image1.jpg");
connection.setRequestMethod("GET");
String contentType = connection.getHeaderField("Content-type");
InputStream responseData = connection.openInputStream();
connection.close();
outputFinal(responseData, contentType);
}
public synchronized void outputFinal(InputStream result, String contentType) throws SAXException, ParserConfigurationException, IOException
{
if(contentType.startsWith("text/"))
{
// bunch of xml save code that works fine
}
else if(contentType.equals("image/png") || contentType.equals("image/jpeg") || contentType.equals("image/gif"))
{
// how to save images here?
}
else
{
//default
}
}
適切なドキュメントが見つからないのは、応答データを取得してデバイスに保存されている画像に保存する方法です。
たぶん、私は非常に明白な何かを見落としていました。どんな助けでも大歓迎です。ありがとう
このアドバイスに従ってみましたが、BB 固有の問題を検索するときにいつも見つけたものと同じものを見つけました。
問題は、すべての例または投稿が、プラットフォームに関するすべてを知っていることを前提としていることです。ここで簡単な質問があります: コードのどの行が読み取り出力ストリームを blackberry デバイスに書き込みますか? どのパス?後で取得するにはどうすればよいですか?
私はこのコードを持っていますが、それがどこに書いているのか、それが何をしているのかさえわからないので、それが何かをするかどうかはわかりません:
** ファイル名は、呼び出された URL に基づいてループで決定されます。
FileOutputStream fos = null;
try
{
fos = new FileOutputStream( File.FILESYSTEM_PATRIOT, filename );
byte [] buffer = new byte [262144];
int byteRead;
while ((byteRead = result.read (buffer ))!=- 1)
{
fos.write (buffer, 0, byteRead);
}
fos.flush();
fos.close();
}
catch(IOException ieo)
{
}
finally
{
if(fos != null)
{
fos.close();
}
}
アイデアは、サーバーから約 600 枚の画像を取得することです。xml をループして各画像をデバイスに保存し、エンティティが呼び出されたときに関連する画像 (entity_id.png) を内部ストレージから取得できるようにする必要があります。
RIM のドキュメントはこれを指定しておらず、簡単に理解できるようにもしていません。この問題は、このフォーラムや私が検索した他のフォーラムでは解決されていないようです。
ありがとう