Ich hatte da schon seit Mindestens Rx10.2.2 Workarounds drin,
aber der damalige Code sah so aus:
im Rx10.2.2 System.Bluetooth.Mac: Da war es so
Delphi-Quellcode:
function TMacBluetoothLEManager.DoGetAdapter: TBluetoothLEAdapter;
begin
if GetConnectionState = TBluetoothConnectionState.Disconnected then
FAdapter := nil;
Result := FAdapter
end;
function TMacBluetoothLEManager.GetConnectionState: TBluetoothConnectionState;
var
LTotal: Single;
LMacBluetoothLEAdapter: TMacBluetoothLEAdapter;
begin
if FAdapter = nil then
FAdapter := TMacBluetoothLEAdapter.Create(Self);
...
Es ist ja in Ordnung das eigentliche Create wirklich in das DoGetAdapter zu verlagern,
im GetConnectionState war das irgendwie fehl am Platz.
Trotzdem frage ich mich warum bei mir die Orginal-Routinen in Rx10.4.2 funktionieren,
und auch die Rx1022 funktionierten.
Naja, ich habe mittlerweile so viele Fixes drin dass man die ÜBersicht verliert.
im Rx1042 System.Bluetooth: Der Aufruf CurrentManager erzeugt das normalerweise
Delphi-Quellcode:
function TBluetoothLEManager.GetCurrentLEAdapter: TBluetoothLEAdapter;
begin
Result := DoGetAdapter;
if Result = nil then
raise EBluetoothAdapterException.Create(SBluetoothDeviceNotFound);
end;