AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Android andere App mit Aufrufschalter starten
Thema durchsuchen
Ansicht
Themen-Optionen

Android andere App mit Aufrufschalter starten

Ein Thema von sko1 · begonnen am 13. Apr 2017 · letzter Beitrag vom 12. Mär 2018
Antwort Antwort
Seite 1 von 2  1 2      
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

Android andere App mit Aufrufschalter starten

  Alt 13. Apr 2017, 06:31
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
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.907 Beiträge
 
Delphi 12 Athens
 
#2

AW: Android andere App mit Aufrufschalter starten

  Alt 13. Apr 2017, 06:43
Hilft dir das und das weiter ?
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
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: Android andere App mit Aufrufschalter starten

  Alt 13. Apr 2017, 06:53
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
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#4

AW: Android andere App mit Aufrufschalter starten

  Alt 13. Apr 2017, 07:32
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:

http://stackoverflow.com/questions/2...ing-parameters

App 1:

Code:
@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);

    }
App 2:


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);
}
}
Michael Justin
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: Android andere App mit Aufrufschalter starten

  Alt 13. Apr 2017, 07:34
Genial!

Danke, danke, danke!

Ciao
Stefan

Nachtrag:
Das sah ja auf den ersten Blick sehr gut aus, ich habe jedoch keine Ahnung wie das in Delphi umzusetzen ist

Geändert von sko1 (13. Apr 2017 um 08:48 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.907 Beiträge
 
Delphi 12 Athens
 
#6

AW: Android andere App mit Aufrufschalter starten

  Alt 13. Apr 2017, 09:21
Startet das so direkt, ohne das der User noch eine Bestätigungs-Taste drücken muss ?
Das wäre wirklich super.

Rollo
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

AW: Android andere App mit Aufrufschalter starten

  Alt 13. Apr 2017, 11:52
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
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.907 Beiträge
 
Delphi 12 Athens
 
#8

AW: Android andere App mit Aufrufschalter starten

  Alt 13. Apr 2017, 14:07
Toll, muss ich über Ostern mal ausprobieren
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#9

AW: Android andere App mit Aufrufschalter starten

  Alt 9. Mär 2018, 08:48
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:
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;
aber mir fehlt der Ansatz, wie ich nun die übergebene Auftragsnummer in der zweiten App bekomme!
Den c-Code

Delphi-Quellcode:
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);
}

}
bekomme ich nicht für meine in Delphi geschriebene App umgesetzt.

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
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

AW: Android andere App mit Aufrufschalter starten

  Alt 9. Mär 2018, 13:27
Nach stundenlangem Googlen bin ich auf eine Demo

http://docwiki.embarcadero.com/CodeE...Intents_Sample

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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:48 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