2010-11-13 45 views
0

我下面的编码@ PC端(我想发送的块数据):如何使用java中的RFCOMM通过蓝牙将图像从PC传输到移动设备?

try { 
    for (int i = 0; i < sdata.length/2; i++) 
    m_Output.write(sdata[i]); 
} catch (IOException ex) { 
    Logger.getLogger(SPPServer.class.getName()).log(Level.SEVERE, null, ex); 
} 
int i = sdata.length/2; 
try { 
    m_Output.flush(); 
} catch (IOException ex) { 
    Logger.getLogger(SPPServer.class.getName()).log(Level.SEVERE, null, ex); 
} 
for (int k = i; k < sdata.length; k++) { 
    try { 
     m_Output.write(sdata[i]); 
     m_Output.flush(); 
     m_Output.close(); 
    } catch (IOException ex) { 
     Logger.getLogger(SPPServer.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 

虽然在移动端我收到如下:

public Image recdata() { 

    Image image1 = null; 
    int i = 0; 
    try { 
     // input = StrmConn.openInputStream(); 
     length = input.read(); 
     data1 = new byte[length]; 
     length = 0; 
     int ch = 1; 

     while (length != data1.length) { 
      ch = input.read(data1, length, data1.length - length); 

      if (ch == -1) { 
       throw new IOException("Can't read data"); 
      } 
      length += ch; 
     } 
     try { 
      // int len = ch; 
      input.wait(2000); 

     } catch (InterruptedException ex) { 
      ex.printStackTrace(); 
     } 
     length = input.read(); 
     byte[] data11 = new byte[length]; 
     try { 
      this.wait(1700); 
     } catch (InterruptedException ex) { 
      ex.printStackTrace(); 
     } 
     while (length != data11.length) { 
      ch = input.read(data11, length, data11.length - length); 

      if (ch == -1) { 
       throw new IOException("Can't read data"); 
      } 
      length += ch; 
     } 
     length = data1.length + data11.length; 
     data12 = new byte[length]; 
     for (i = 0; i < data1.length; i++) { 
      data12[i] = data[i]; 
     } 
     for (int k = i; k < length; k++) 
     data12[k] = data[k]; 
    } 
    catch (IOException e) { 
     System.err.println("U must correct"); 
    } 

    if (image1 == null) { 
     S = "Imagr is null in recive data"; 
    } 
    return image1; 
} 
+0

问题是......? http://tinyurl.com/so-hints – 2010-11-13 18:34:45

+0

我写了上面的代码,但无法接收。我只能接收到5000字节以上的321个字节。你能帮我吗 – 2010-11-15 16:47:36

回答

0

的问题可能是这里的移动侧

length = input.read(); 

你(可能)指派给整数字节,所以当你以后使用的值,你使用的字节的整数表示,而不是整数VAL UE。这里是一个代码链接,让您将整数转换为字节数组,然后从字节数组返回到整数。 Java integer to byte array

+0

感谢您的回放,我有阅读整个数据的问题。我可以读取多达10个字节的数据。自从最近几个月以来,我一直在遭受同样的问题。请寄给我一些更好的解决方案。先生,你太好了 – 2010-12-01 14:20:24

相关问题