从Android上的蓝牙数据传输中读取数据

问题描述:

我期待获取/读取我连接几个Android设备后传递的数据,到目前为止我配对,连接并传输它们之间的信息,但不知道如何实现阅读部分,在这里我不确定是否应该使用createRfcommSocketToServiceRecord或listenUsingRfcommWithServiceRecord为此目的创建阅读套接字。从Android上的蓝牙数据传输中读取数据

我有两个屏幕,其中一个是用户按下按钮并发送信息,另一个是接收者按下另一个按钮并读取数据,我想知道同步是否不正确,然后按“发送”按钮然后“阅读”按钮连接不可用,或者如果这个实现不能一起推荐。

这些都是我的两次尝试:

尝试1:

//Executed after the user press the read data button 
    private void connectToServerSocket(BluetoothDevice device, UUID uuid) { 

      try{     

       BluetoothServerSocket serverSocket = mBluetoothAdapter.listenUsingRfcommWithServiceRecord(device.getName(),uuid); 

       //Here is where I get the error: 
       //io to Server Socket JSR82 Connection is not created, failed or aborted 
       BluetoothSocket clientSocket = serverSocket.accept(); 

       // Start listening for messages. 
       StringBuilder incoming = new StringBuilder(); 
       listenForMessages(clientSocket, incoming); 

       // Add a reference to the socket used to send messages. 
       transferSocket = clientSocket; 

      } catch (IOException ioe) {   
       this.printToast("Excep io toServerSocket:" + ioe.getMessage()); 
      } catch (Exception e) { 
       this.printToast("Excep toServerSocket:" + e.getMessage()); 
      } 

    } 

尝试2:

private void connectToServerSocket(BluetoothDevice device, UUID uuid) { 

      try{ 

       BluetoothServerSocket clientSocket = device.createRfcommSocketToServiceRecord(uuid); 
       //clientSocket without method and invoke is not working either 
       Method m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class}); 
       clientSocket = (BluetoothSocket) m.invoke(device, 1); 

       //Here is where I get the error: 
       //io to Server Socket JSR82 Connection is not created, failed or aborted 
       clientSocket.connect(); 

       // Start listening for messages. 
       StringBuilder incoming = new StringBuilder(); 
       listenForMessages(clientSocket, incoming); 

       // Add a reference to the socket used to send messages. 
       transferSocket = clientSocket; 

      } catch (IOException ioe) {   
       this.printToast("Excep io toServerSocket:" + ioe.getMessage()); 
      } catch (Exception e) { 
       this.printToast("Excep toServerSocket:" + e.getMessage()); 
      } 

    } 

serverSocket.accept()clientSocket.connect()我得到异常:

Connection is not created, failed or aborted 

我将不胜感激,如果任何人都可以指导我获取数据阅读部分工作。谢谢。

查看Android SDK附带的Android的BluetoothChat示例。我认为它确实是你想要的。

$ ANDROID_SDK /样品/ Android的19 /遗留/ BluetoothChat/src目录/ COM /例子/安卓/ BluetoothChat

阅读管理的连接部分。 它清楚地写在文档中如何通过蓝牙在设备之间交换(读/写)信息。 http://developer.android.com/guide/topics/connectivity/bluetooth.html