Übergabe eines BluetoothGatt an die nächste Activity.

  • Antworten:5
  • Bentwortet
Gelöschter Account
  • Forum-Beiträge: 28

18.04.2018, 16:33:38 via Website

Guten tag!
Ich habe im internet gefunden, wie man über parcelable Klassen ganze Objekte an die nächste Activity übergeben kann.
Aber in den Funktionen writeToParcel und readFromParcel, kann man nur einfache typen schreiben.
Ich würde aber gern ein BluetoothGatt übergeben.
Kann man das nicht?
Wie kann ich dann erreichen, dass diese variable "mGatt " einer anderen Activity bekannt ist?

Vielen Dank im Voraus für eure Hilfe,
MBoerner

    GattClientCallBack gattClientCallBack = new GattClientCallBack();
    gattClientCallBack.mGatt = device.connectGatt(this,false,gattClientCallBack );

Die klasse, dessen Fields ich übergeben möchte, sieht so aus:

private class GattClientCallBack extends BluetoothGattCallback implements Parcelable {

//UUID from Service and Characteristic

UUID SERVICE_UUID = UUID.fromString("B1120002-0000-1000-8000-00805F9B1234");
UUID SMICMD_UUID = UUID.fromString("B1120004-0000-1000-8000-00805F9B1234");
UUID SMIRESP_UUID = UUID.fromString("B1120005-0000-1000-8000-00805F9B1234");
private BluetoothGatt mGatt;
private boolean mConnected=false;
...
}

Kommentieren
Beste Antwort
swa00
  • Forum-Beiträge: 3.704

19.04.2018, 12:03:50 via Website

Hallo,

Die Klasse "GattClientCallBack" wäre also eine eigene Klasse

ja

Die Instanz davon würde ich public machen

Brauchst du sie denn und wenn ja warum public ?
public bedeutet nicht App übergreifend - da musst du SingleTon verwenden
https://gist.github.com/cesarferreira/f14c91f0426f50712f1d
https://medium.com/@programmerr47/singletons-in-android-63ddf972a7e7

Listener :
Hier ein Tutorial, es gibt eigentlich etliche dazu
https://guides.codepath.com/android/Creating-Custom-Listeners

— geändert am 19.04.2018, 12:11:08

Liebe Grüße - Stefan
[ App - Entwicklung ]

Hilfreich?
Kommentieren
swa00
  • Forum-Beiträge: 3.704

18.04.2018, 16:47:55 via Website

Hallo,

ich frage mich eben, warum du in dem Falle ganze Objekte übergeben möchtest.

Wie kann ich dann erreichen, dass diese variable "mGatt " einer anderen Activity bekannt ist?

Was würde dagegen sprechen, eine Singleton - Klasse übergeordnet zu verwenden
und/oder die Messages mit Listener/Callback zu realisieren ?

— geändert am 18.04.2018, 16:50:16

Liebe Grüße - Stefan
[ App - Entwicklung ]

Hilfreich?
Gelöschter Account
Kommentieren
Gelöschter Account
  • Forum-Beiträge: 28

19.04.2018, 11:30:14 via Website

Ich bin android-Anfänger und weiß tatsächlich nicht, wie man so was am besten löst.
Kannst du mir eine kurze Erklärung geben, wie du es lösen würdest, damit ich Stichwörter habe, zum suchen?
Die Klasse "GattClientCallBack" wäre also eine eigene Klasse. Die Instanz davon würde ich public machen?

Oder wie würde das Prinzip mit Listener/Callback funktionieren?

Danke im Voraus
MBoerner

Hilfreich?
Kommentieren
Beste Antwort
swa00
  • Forum-Beiträge: 3.704

19.04.2018, 12:03:50 via Website

Hallo,

Die Klasse "GattClientCallBack" wäre also eine eigene Klasse

ja

Die Instanz davon würde ich public machen

Brauchst du sie denn und wenn ja warum public ?
public bedeutet nicht App übergreifend - da musst du SingleTon verwenden
https://gist.github.com/cesarferreira/f14c91f0426f50712f1d
https://medium.com/@programmerr47/singletons-in-android-63ddf972a7e7

Listener :
Hier ein Tutorial, es gibt eigentlich etliche dazu
https://guides.codepath.com/android/Creating-Custom-Listeners

— geändert am 19.04.2018, 12:11:08

Liebe Grüße - Stefan
[ App - Entwicklung ]

Hilfreich?
Kommentieren
Gelöschter Account
  • Forum-Beiträge: 28

19.04.2018, 12:14:58 via Website

Vielen Dank!
Eigentlich meinte ich global, nicht public.
ich lese mich durch und setze das um.

Vielen Dank für die Tips!
MBoerner

Hilfreich?
Kommentieren
Gelöschter Account
  • Forum-Beiträge: 28

19.04.2018, 15:07:14 via Website

Das hat wunderbar geklappt, bin jetzt ein bisschen schlauer,
vielen Dank!
MBoerner

Hilfreich?
swa00
Kommentieren