2016-06-30 10 views
0

Ich arbeite an einer Android-App, die eine Bluetooth-Verbindung verwendet, und ich möchte Daten vom Gerät in die App lesen, aber müssen wissen, ob ich mit dem verbunden bin Gerät vor dem Lesen von Daten.So erkennen Sie aktive Verbindung von Bluetooth-Gerät mit Android SDK

Unten ist der Code, den ich habe, der Bluetooth-Einstellungen startet, wo ich das Gerät koppeln kann. Wie kann ich überprüfen, ob das Gerät, das ich gekoppelt habe, eine aktive Verbindung mit der App hat und bereit ist, Daten zu senden?

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_connect); 

    Button btn = (Button) findViewById(R.id.connect_button); 

    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intentOpenBluetoothSettings = new Intent(); 
      intentOpenBluetoothSettings.setAction(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS); 
      startActivity(intentOpenBluetoothSettings); 
     } 
    }); 

    mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
    pairedDevices = mBluetoothAdapter.getBondedDevices(); 

Antwort

0

Pair und Connect sind zwei verschiedene Konzepte. Ihr Code nur Paare ein Bluetooth-Zielgerät und daran erinnern, deren Informationen können durch den Aufruf abgerufen werden:

BluetoothAdapter.getDefaultAdapter().getBondedDevices(); 

Diese Funktion tatsächlich alle kehren die Informationen von gekoppelten Bluetooth-Geräte, obwohl diese Geräte nicht in der Nähe (Anschluss an) du rufst an.

Um ein Bluetooth-Gerät anzuschließen, müssen Sie Ihren eigenen Verbindungscode schreiben und eine bestimmte UUID auswählen, um Ihrem Telefon mitzuteilen, welche Art von Verbindung (seriell, Audio usw.) hergestellt werden soll.

Weitere Informationen zum Herstellen einer Verbindung mit einem Bluetooth-Gerät finden Sie unter official document unter Anschließen als Client.