Bluetooth-Datenübertragung zwischen zwei Android-Geräten

Habe ich nach diese Android-guide für die Bluetooth-Kommunikation

Genau erklären, was ich tun will, wenn die beiden Geräte gekoppelt sind, zwei verschiedene Aktivitäten öffnen auf jedem Gerät (server und client), wo auf die server-Tätigkeit habe ich verschiedene Knöpfe, und auf der client-Aktivität, es ist nur eine textview.
Ich möchte in der Lage sein, einen Knopf zu drücken auf dem server-Gerät und Anzeige auf dem client-Rechner.

Ich habe es geschafft, eine Verbindung zwischen den beiden Geräten, aber nun möchte ich Daten senden, die ich nicht in der Lage, das zu tun.

Geben Sie diesen code, um Daten zu übertragen:

private class ConnectedThread extends Thread {
private final BluetoothSocket mmSocket;
private final InputStream mmInStream;
private final OutputStream mmOutStream;

public ConnectedThread(BluetoothSocket socket) {
    mmSocket = socket;
    InputStream tmpIn = null;
    OutputStream tmpOut = null;

    //Get the input and output streams, using temp objects because
    //member streams are final
    try {
        tmpIn = socket.getInputStream();
        tmpOut = socket.getOutputStream();
    } catch (IOException e) { }

    mmInStream = tmpIn;
    mmOutStream = tmpOut;
}

public void run() {
    byte[] buffer = new byte[1024];  //buffer store for the stream
    int bytes; //bytes returned from read()

    //Keep listening to the InputStream until an exception occurs
    while (true) {
        try {
            //Read from the InputStream
            bytes = mmInStream.read(buffer);
            //Send the obtained bytes to the UI activity
            mHandler.obtainMessage(MESSAGE_READ, bytes, -1, buffer)
                    .sendToTarget();
        } catch (IOException e) {
            break;
        }
    }
}

/* Call this from the main activity to send data to the remote device */
public void write(byte[] bytes) {
    try {
        mmOutStream.write(bytes);
    } catch (IOException e) { }
}

/* Call this from the main activity to shutdown the connection */
public void cancel() {
    try {
        mmSocket.close();
    } catch (IOException e) { }
}
}

Aber diese Zeile erzeugt einen Fehler

//Send the obtained bytes to the UI activity
            mHandler.obtainMessage(MESSAGE_READ, bytes, -1, buffer).sendToTarget();

Und ist nicht in der Anleitung beschrieben. Ich weiß nicht, was die mHandler ist oder nicht.

Abgesehen von dem Fehler, den ich nicht einmal wirklich verstehen, wo Sie diesen code. Sollte es in der zweiten Aktivitäten (server und client), die ich öffnen oder in die main? Wenn in der Server-Aktivität, sollte man in die onClick-Methode für alle Tasten mit einer anderen byte-code zu senden, für jeden button? Und in diesem code, wie können wir unterscheiden, wer sendet und wer empfängt?

  • Haben Sie Hinzugefügt, die entsprechenden Berechtigungen in manifest.xml Datei ?? <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
  • Und <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> oder <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> .
InformationsquelleAutor Simpsons | 2014-01-19
Schreibe einen Kommentar