2009-06-11 106 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

如果他訪問的圖像,然後他可能訪問創建它的byte []數組的方法。這很可能是壓縮格式,因此它比通過藍牙發送更好,因爲它將比getRGB()int數組小。 – funkybro 2009-06-18 17:50:54

0

那麼,如果你的服務器移動使用藍牙,並運行你寫的應用程序,那麼你可以創建自己的協議來做到這一點。

對於圖像傳輸,最好發送通過HTTP下載的字節(並用於創建ImageItem),然後在服務器端接收它們並以相同的方式顯示。

這樣做時遇到的具體問題是什麼?

funkybro

+0

喜funkybro, 可以爲您提供鏈接到一些示例代碼來實現,你在這裏所討論 – 2009-06-12 12:59:45

0

由於funkybro建議,您可以使用字節將圖像傳送到服務器上移動。爲此,您需要打開已連接到藍牙服務器移動設備的連接的輸出流,然後將字節內容寫入輸出流。