Einzelnen Beitrag anzeigen

AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
269 Beiträge
 
Delphi 12 Athens
 
#16

AW: TBluetoothLE: DiscoverServices() erkennt unter Android manchmal keine Services

  Alt 23. Jan 2020, 16:49
Ich werde nach einem letzten Test wohl ein Ticket aufmachen, wobei ich jetzt noch einen Anhaltspunkt gefunden habe.

Im Prinzip habe ich in den Original-Java-Quelltext von Android hineingeschaut und DiscoverServices gesucht.
Diese sieht folgendermaßen aus:

Code:
public boolean discoverServices() {
        if (DBG) Log.d(TAG, "discoverServices() - device: " + mDevice.getAddress());
        if (mService == null || mClientIf == 0) return false;
        mServices.clear();
        try {
            mService.discoverServices(mClientIf, mDevice.getAddress());
        } catch (RemoteException e) {
            Log.e(TAG, "", e);
            return false;
        }
        return true;
    }
Wie man sehen kann, liefert diese Methode unter zwei Umständen "false" zurück.
Da bei der zweiten Option im try-catch-Block eine Error-Nachricht ins Debuglog geschrieben wird, habe ich das Ganze mit dem Android Device Monitor mal überprüft und siehe da, es wird keine Error-Nachricht geschrieben, was bedeutet, dass die erste Option jene ist, die bei mir eintritt:

Code:
if (mService == null || mClientIf == 0) return false;
Jetzt bin ich gerade dabei, mühsam zu überprüfen, warum das auftritt. In jedem Fall habe ich dann aber auch eine umfangreiche Informationskette für ein etwaiges Support-Ticket.
Sollte jemandem basierend auf diesen Informationen ein Geistesblitz kommen, wäre ich aber auch dafür natürlich sehr dankbar.
  Mit Zitat antworten Zitat