Hallo zusammen,
ich erstelle mein erstes Android-Projekt und habe eine Frage zum Verbindungsaufbau/-Abbau.
Grundkonzept:
- Eine Desktop-Applikation arbeitet als "Server" und liefert auf Anforderung aus der Android-App Daten
- Die Verbindung wird per TetheringManager.Autoconnect aufgebaut (WLAN)
- die Android-App sendet eine Anfrage
- die Anfrage wird in der Server-Applikation per ResourceReceived eines TetheringAppProfiles empfangen
- die Server-Applikation antwortet
- Die Antwort wird in der Android-App ebenfall über ein ResourceReceived eines TetheringAppProfile empfangen
Das ganze funktioniert wunderbar, wenn ich beide Applikationen neu starte, verbinde und miteinander kommunizieren lasse.
Beende ich eine der beiden Applikationen, starte nur diese neu und baue die Verbindung neu auf, erhalte ich zwar über TetheringAppManger.PairedToRemote eine positive Rückmeldung zum Verbindungsaufbau, aber die Events ResourceReceived werden nicht mehr ausgelöst.
Beim Beenden der Android-App baue ich die Verbindung wie folgt ab:
Delphi-Quellcode:
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
var
I: Integer;
begin
for I := TetheringManager1.PairedManagers.Count - 1 downto 0 do
TetheringManager1.UnPairManager(TetheringManager1.PairedManagers[I]);
end;
procedure TMainForm.FormDestroy(Sender: TObject);
begin
TetheringAppProfile1.Enabled:=False;
TetheringManager1.Enabled:=False;
end;
Bei der Desktop-Applikation habe ich vergleichbaren Code auf einem Button "Verbindung aufbauen/trennen"
Delphi-Quellcode:
procedure TfrmInventory.btnAppConnectClick(Sender: TObject);
VAR I: Integer;
begin
if btnAppConnect.Caption='APP verbinden' then // wenn's grundsätzlich geht, anderen Weg als per Caption, aber für ersten Test OK
begin
TetheringAppProfile1.Enabled:=true;
TetheringManager1.Enabled:=true;
TetheringManager1.AutoConnect;
end
else
begin
for I := TetheringManager1.PairedManagers.Count - 1 downto 0 do
TetheringManager1.UnPairManager(TetheringManager1.PairedManagers[I]);
TetheringAppProfile1.Enabled:=False;
TetheringManager1.Enabled:=False;
btnAppConnect.Caption:='APP verbinden';
end;
end;
Mache ich da einen grundsätzliche Denkfehler oder fehlt nur etwas in meinem Code?
Danke für Eure Tipps,
Siggi