da bin ich wieder auf meinem Osterurlaub.
Heute zeige ich euch, wie ihr euer Serial Port Profile (SPP) programmtechnisch bei einer Bluetooth(BT)-Verbindung aktiviert und mit einem Gerät verbindet.
Als erstes braucht ihr denn BluetoothAdaper des Geräts, diesen bekommt ihr durch die statische Methode des BluetoothAdaper :
- BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
Desweiteren braucht ihr die UUID die eure Verbindung als SPP kennzeichnet.
- UUID sppUUID = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
Anschließen benutzt ihr die Methode listenUsingRfcommWithServiceRecord(String, UUID) um eine ein ServerSocket zu öffnen und auf Verbindungen warten.
Ab hier ist es nur noch ServerSocket-Verarbeitung. Im Vorfeld solltet ihr natürlich überprüfen, ob euer Gerät überhaupt BT hat und dieses auch aktiviert ist. Gerät sichtbar machen, darf auch nicht fehlen. Im Code sieht es anschließen so aus:
//UUID für den SPP
UUID sppUUID = UUID
.fromString("00001101-0000-1000-8000-00805f9b34fb");
BluetoothServerSocket serverSocket;
//BT-Adapter
BluetoothAdapter bluetoothAdapter = BluetoothAdapter .getDefaultAdapter();
if (bluetoothAdapter == null) {
// Device does not support Bluetooth
}
//Anschalten des BTs nachfragen, falls dieses deaktiviert ist
if (!bluetoothAdapter .isEnabled()) {
Intent enableBtIntent = new Intent( BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivity(enableBtIntent);
}
//Sichbarkeit des BT für 300 Sekunden nachfragen
Intent discoverableIntent = new Intent( BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); discoverableIntent.putExtra( BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300); startActivity(discoverableIntent);
//ServerSocket erstellen
try {
serverSocket = bluetoothAdapter
.listenUsingRfcommWithServiceRecord( "Dein Name der Verbindung", sppUUID);//Auf Verbindungsaufbau des SPP-Geräts waren
BluetoothSocket bluetoothSocket = serverSocket.accept();
//und anschließen verarbeiten
handleBluetoothSocket(bluetoothSocket); } catch (IOException e) {
Log.e("meine APP", "BT - SPP", e);
}
Ich hoffe es hilft euch bei euren Problemen weiter.
regards
regards
- - - - - - - - - - - - -
#Update - Permissions
Hallo noch mal,
wie ihr bestimmt schon gemerkt habt, müsst ihr auch die Permission für BT erlangen/nachfragen.
Das wird in der AndroidManifest.xml getan. Diese Datei findet ihr in eurem Projektordner(../AndroidManifest.xml).
Im manifest-Tag müsst ihr nun noch diese Zeile hinzufügen:
< uses-permission android:name="android.permission.BLUETOOTH" />
Solltet ihr selbst die Sichtbarkeit euren Gerät aktivieren,
bluetoothAdapter.startDiscovery()
so benötigt ihr auch:
< uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
Alles nachzulesen im android.bluethooth package.
regards
Keine Kommentare:
Kommentar veröffentlichen