Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Intent Extras sind leer (https://www.delphipraxis.net/211736-intent-extras-sind-leer.html)

skoschke 28. Okt 2022 06:51


Intent Extras sind leer
 
Hallo,

eine Android App versendet einen Intent, welcher eine zweite App dazu bewegen soll, bestimmte Daten anzuzeigen.

Die Senderseite hat folgenden Code:
Delphi-Quellcode:
  var
  Intent: JIntent;
begin
    Intent := TJIntent.Create;
    Intent := TAndroidHelper.Activity.getPackageManager.
      getLaunchIntentForPackage(StringToJString('com.embarcadero.test_app'));
    Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT,
      StringToJString(Auftragsnummer));
    Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_REORDER_TO_FRONT);
    TAndroidHelper.Activity.startActivity(Intent);
Auf der Empfängerseite arbeitete folgender Code seit Jahren, jetzt ist aufgefallen, dass das nicht mehr funktioniert:
Delphi-Quellcode:
function TFormMain.HandleIntentAction(const Data: JIntent): Boolean;
var
  Extras: JBundle;
  Nummer: string;
begin
  Result := False;
    if Data = nil then
      exit;
    Extras := Data.getExtras;
    if Extras = nil then
     exit;
    Nummer := JStringToString(Extras.getString(TJIntent.JavaClass.EXTRA_TEXT));
    if Nummer = '' then
      exit;
.....
Extras sind jetzt beim Empfang Nil, damit kann es nicht mehr funktionieren...
Hat sich da in letzter Zeit irgendwas geändert, was das Intent-Handling betrifft?
Hat jemand bitte einen Tip wo ich ansetzen könnte?
Fehlt da beim Sender vielleicht noch irgendeine Berechtigung die früher nicht notwendig war?

Ciao
Stefan

skoschke 28. Okt 2022 08:03

AW: Intent Extras sind leer
 
Ich habe den Sender um eine Kontrolle erweitert:
Delphi-Quellcode:
var
  Intent: JIntent;
  Extra: JBundle;
  Nummer: string;
begin
    Intent := TJIntent.Create;
    Intent := TAndroidHelper.Activity.getPackageManager.
      getLaunchIntentForPackage(StringToJString('com.embarcadero.test_app'));
    Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT,
      StringToJString(Auftragsnummer));
    Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_REORDER_TO_FRONT);
    // Kontrolle debuggen, ist da was drin oder nil?
    Extra := Intent.GetExtras;
    Nummer := JStringToString(Extra.getString(TJIntent.JavaClass.EXTRA_TEXT));
    TAndroidHelper.Activity.startActivity(Intent);
Extra ist vorhanden, die enthaltene Nummer auch, doch warum kommt das in der zweiten App nicht an?

Ciao
Stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz