2014-04-06 9 views
24

Ich möchte eine einfache Zeichenfolge Daten wie "a" von einem Android-Gerät an andere über Bluetooth senden. Ich sah Beispiel-Bluetooth-Code in Android SDK, aber es ist so komplex für mich. Ich kann nicht verstehen, wie ich nur bestimmte Daten senden kann, wenn ich einen Knopf drücke. Wie kann ich dieses Problem lösen?Android-Beispiel-Bluetooth-Code zum Senden einer einfachen Zeichenfolge über Bluetooth

+0

Sie beziehen [hier] auch (https://stackoverflow.com/questions/13450406/how-to-receive-serial-data-using-android-bluetooth) –

Antwort

34
private OutputStream outputStream; 
private InputStream inStream; 

private void init() throws IOException { 
    BluetoothAdapter blueAdapter = BluetoothAdapter.getDefaultAdapter(); 
    if (blueAdapter != null) { 
     if (blueAdapter.isEnabled()) { 
      Set<BluetoothDevice> bondedDevices = blueAdapter.getBondedDevices(); 

      if(bondedDevices.size() > 0) { 
       Object[] devices = (Object []) bondedDevices.toArray(); 
       BluetoothDevice device = (BluetoothDevice) devices[position]; 
       ParcelUuid[] uuids = device.getUuids(); 
       BluetoothSocket socket = device.createRfcommSocketToServiceRecord(uuids[0].getUuid()); 
       socket.connect(); 
       outputStream = socket.getOutputStream(); 
       inStream = socket.getInputStream(); 
      } 

      Log.e("error", "No appropriate paired devices."); 
     } else { 
      Log.e("error", "Bluetooth is disabled."); 
     } 
    } 
} 

public void write(String s) throws IOException { 
    outputStream.write(s.getBytes()); 
} 

public void run() { 
    final int BUFFER_SIZE = 1024; 
    byte[] buffer = new byte[BUFFER_SIZE]; 
    int bytes = 0; 
    int b = BUFFER_SIZE; 

    while (true) { 
     try { 
      bytes = inStream.read(buffer, bytes, BUFFER_SIZE - bytes); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+2

Vielen Dank für Ihre relpy. Wie kann ich diese Nachricht von einem anderen Gerät erhalten? – user3374956

+0

@ user3374956 im Allgemeinen müssen Sie Daten von 'InputStream' lesen. Der Empfang von Daten hängt vom Absender ab. Ich habe den Code aktualisiert. – eleven

+1

Zulassungen sind erforderlich? – Prasad