2012-04-10 13 views
3

Ich mache eine Anwendung, die andere installierte Anwendungen auf einem Android-Smartphone startet.Wie kann ich die möglichen Parameter kennen, die von einer anderen Android-Anwendung gelesen werden können?

Im Grunde ist hier der Code, den ich verwende, um eine andere von mir selbst erstellte Anwendung mit einem Parameter zu starten.

Anwendung 1:

PackageManager pm = getApplicationContext().getPackageManager(); 
Intent appStartIntent = pm.getLaunchIntentForPackage(mypackage); 
    appStartIntent.putExtra("message", s); 

    if (null != appStartIntent) { 
     getApplicationContext().startActivity(appStartIntent); 
    } 

In meiner anderen Anwendung, hier, wie ich den Parameter erhalten:

Appliaction 2:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Bundle extras = getIntent().getExtras(); 
    String result; 
    try { 
     result= (String) extras.getString("message"); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     recup = "nothing received"; 
    } 

    Toast.makeText(getApplicationContext(), recup, Toast.LENGTH_SHORT).show(); 
} 

Das Problem hier ist, dass wir wissen müssen Die zweite Anwendung kann einen Parameter namens "message" erhalten.

Hier ist die Frage: Ist es möglich, alle möglichen Parameter von der Anwendung 2, von der Anwendung 1 erwartet zu wissen? Wenn ja, ist es beispielsweise möglich, die Parameter zu kennen, die von einer installierten Anwendung auf meinem Telefon akzeptiert werden? (Beispiel: Handcent, Facebook, Breitengrad ...)

Antwort

2

Android definiert keine Metadaten-API, mit der Sie die von einer Anwendung erwarteten Parameter abrufen können. Somit ist es nicht möglich zu tun, was Sie wollen. Sie müssen sich auf die Dokumentation jeder Anwendung verlassen.

+0

Vielen Dank für Ihre schnelle Antwort Ich werde in die Anwendung schauen, die ich in meinem Programm verwenden möchte, bevor ich meine eigene Anwendung codiere. – Bertrand

0

Sie könnten versuchen, Reflektion in einer Klasse zu sehen und seine Methoden und erwarteten Parameter zu erhalten. Nicht sicher, ob das Ihr Problem vollständig löst, aber es ist ein Anfang ...

1

dieses Ding ist mir passiert, so ist die beste Art und Weise, die ich weiß, ist die Zielanwendung zu dekompilieren und die gewünschte Aktivität anzuzeigen.

+0

In der Tat, das ist, was ich tun sollte, aber ich denke, wir können das nicht direkt vom Android-Gerät tun, für ein selbstlernendes Programm. – Bertrand

Verwandte Themen