![]() |
Android andere App mit Aufrufschalter starten
Hallo,
ich habe 2 Android-Apps entwickelt. Nun möchte ich aus der ersten App die zweite (wenn vorhanden) mit "Aufrufschalter" starten, so wie man das in Windows kennt: "xyz.exe /aufrufschalter" Für Android fehlt mir da irgendwie komplett der Ansatz, wie man das bewerkstelligen könnte. Hat jemand da eine Idee dazu? Ciao Stefan |
AW: Android andere App mit Aufrufschalter starten
Hilft dir
![]() ![]() Vielleicht in Kombination mit Push-Notifications. Ich denke es geht nur so das ein Backgroundservice sich darum kümmert und womöglich Notifications and die gewünschten Apps schicken kann. Die Apps selber sind in einer Sandbox, so wie ich das sehe kommen die da nicht so einfach raus. Rollo |
AW: Android andere App mit Aufrufschalter starten
Hallo,
sieht beides auf den ersten Blick nicht ganz so aus wie ich benötige... Aber mir kommt da eine Idee (meist so, wenn man erst mal die Frage geschrieben hat dann auf Antwort hofft...) : Programm 2 benutzt eine Datenbank, die öffentlich unter /Documents/... liegt. 1) Hier könnte App1 ja einen speziellen Eintrag schreiben 2) App1 startet Intent mit App2 3) App2 sucht beim Starten diesen Eintrag, benutzt ihn als Startparameter und löscht ihn Wäre das denkbar? Ciao Stefan |
AW: Android andere App mit Aufrufschalter starten
Umwege über Background-Services und Datenbanken braucht man nicht, man kann aus einer Android App eine andere über Intent mit Extra-Argumenten starten.
Beschrieben wird das z.B. hier: ![]() App 1:
Code:
App 2:
@Override
public void onClick(View v) { Intent sendIntent = getPackageManager().getLaunchIntentForPackage("com.example.app2"); sendIntent.putExtra("my_text", "This is my text to send."); startActivity(sendIntent); }
Code:
EditText text;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text=(EditText)findViewById(R.id.edittext1);// This was missing in your code. Intent intent = getIntent(); if (intent.hasExtra("my_text")) { String sharedText = intent.getStringExtra("my_text"); text.setText(sharedText); } } |
AW: Android andere App mit Aufrufschalter starten
Genial!
Danke, danke, danke! :-D Ciao Stefan Nachtrag: Das sah ja auf den ersten Blick sehr gut aus, ich habe jedoch keine Ahnung wie das in Delphi umzusetzen ist :-( |
AW: Android andere App mit Aufrufschalter starten
Startet das so direkt, ohne das der User noch eine Bestätigungs-Taste drücken muss ?
Das wäre wirklich super. Rollo |
AW: Android andere App mit Aufrufschalter starten
Das Starten direkt ohne zusätzliche Benutzereingabe funktioniert:
Delphi-Quellcode:
procedure StartAPP();
{$IFDEF ANDROID} var Intent: JIntent; {$ENDIF} begin {$IFDEF ANDROID} try // Direkt gewünschtes Programm starten Intent := TJIntent.Create; Intent := TAndroidHelper.Activity.getPackageManager. getLaunchIntentForPackage (StringToJString('com.embarcadero.xxxxxxxxx')); TAndroidHelper.Activity.startActivity(Intent); exit; except showmessage('Programm nicht gefunden !'); exit; end; {$ENDIF} showmessage('Diese Funktionalität ist in Windows nicht verfügbar !'); end; Ciao Stefan |
AW: Android andere App mit Aufrufschalter starten
Toll, muss ich über Ostern mal ausprobieren :-D
|
AW: Android andere App mit Aufrufschalter starten
Ich hole den Thread mal wieder aus der Versenkung ;-)
Das starten der zweiten App mit Übergabe einer Info funktioniert in soweit, dass die App wie gewünscht gestartet wird und der Compiler bei folgendem Code der ersten App nicht meckert:
Delphi-Quellcode:
aber mir fehlt der Ansatz, wie ich nun die übergebene Auftragsnummer in der zweiten App bekomme!
procedure StartAuftrag(Auftragsnummer: string);
var Intent: JIntent; begin try Intent := TJIntent.Create; Intent := TAndroidHelper.Activity.getPackageManager. getLaunchIntentForPackage(StringToJString('com.embarcadero.xxxxx')); Intent.putExtra(StringToJString('Auftragsnummer'), StringToJString(Auftragsnummer)); TAndroidHelper.Activity.startActivity(Intent); exit; except showmessage('Programm nicht gefunden !'); end; end; Den c-Code
Delphi-Quellcode:
bekomme ich nicht für meine in Delphi geschriebene App umgesetzt.
EditText text;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text=(EditText)findViewById(R.id.edittext1);// This was missing in your code. Intent intent = getIntent(); if (intent.hasExtra("my_text")) { String sharedText = intent.getStringExtra("my_text"); text.setText(sharedText); } } Und wenn das dann funktionieren würde: Muss die zweite App geschlossen und mit Parameter wieder gestartet werden oder bekommt sie "intern" eine Message mit der Nummer? Ciao Stefan |
AW: Android andere App mit Aufrufschalter starten
Nach stundenlangem Googlen bin ich auf eine Demo
![]() gestoßen, welche eigentlich das macht, was ich mir wünsche: - andere App starten und der einen Parameter mitgeben. - die andere App startet und benutzt den Parameter Leider hat das Ganze einen Schönheitsfehler, der das Ganze unbrauchbar macht: Der Parameter beim Start wird nur ausgewertet wenn die zweite App neu gestartet wird! Ist sie schon gestartet und wird durch den Intend nur wieder hervorgeholt nützt der übergebene Parameter nichts! Es wäre toll wenn jemand eine funktionierende Lösung der Problematik hätte! Ciao Stefan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz