2009-06-11 9 views
1

私はJ2MEテクノロジの新機能です。そして、私はテキストと画像(httpを介してダウンロードしてフォームのImageItemに保存)をクライアントモバイルからブルートゥースを使用してサーバーモバイルに転送するアプリケーションを作成しています。使用される接続はSPPです。私はテキストメッセージを転送することに成功しました。しかし私はイメージを転送することができません。 携帯電話のメモリやメモリカードに保存せずに、ブルートゥース経由でサーバーのモバイルに直接画像を転送するのに手伝ってもらえますか? 私はあなたに感謝します。J2MEのブルートゥースファイル転送

答えて

2
 

javax.microedition.lcdui.Image.getRGB() is the method you are looking for. 

If myImageItem is your ImageItem object, the code would look like this: 

------------ 

Image myImage = myImageItem.getImage(); 
int[] myImageInts = new int[myImage.getHeight() * myImage.getWidth()]; 
// Beware of OutOfMemoryError here. 

myImage.getRGB(myImageInts, 0, myImageInts.length, 0, 0, 
             myImage.getWidth(), myImage.getHeight()); 

------------ 

You can then convert each int in the array into 4 bytes 
(in the correct order please) 
and feed these to your Connection's OutputStream. 

Alternatively, DataOutputStream.writeInt() does the conversion for you. 

+0

を議論しているメソッドを実装するためにいくつかのサンプルコードへのリンクを提供することができ、彼は画像へのアクセスを持っている場合、彼はおそらくそれを作成し、バイト[]配列へのアクセス権を持っています。これは圧縮された形式の可能性が高いため、getRGB()int配列よりも小さくなるため、Bluetooth経由での送信に適しています。 – funkybro

+0

十分に真実ですが、問題はImageItemにしか言及していませんでしたので、何も想定しないことをお勧めします。 –

0

あなたのサーバーモバイルがBluetoothを使用しており、あなたが書いたアプリケーションを実行している場合は、独自のプロトコルを作成してこれを行うことができます。

イメージ転送の場合は、HTTP経由でダウンロードされた(ImageItemの作成に使用された)バイトを送信し、サーバー側で受信して同様の方法で表示することをお勧めします。

これを行う際に発生する具体的な問題は何ですか?

funkybro

+0

funkybroやあ、 はあなたがここに –

0

funkybroが示唆したように、あなたはサーバーの携帯電話に画像を転送するためにバイトを使用することができます。そのためには、bluetoothサーバーのモバイルに行った接続の出力ストリームを開いて、出力ストリームにバイト内容を書き込むだけで済みます。