2010-05-27 23 views
21

Ich verstehe, wie Intents zu verwenden und startActivity() beim Öffnen einer anderen Aktivität in meiner eigenen App, aber wie starten Sie eine andere App? speziell:Android: Wie öffne ich eine andere App von meiner App?

  • Wie ermitteln Sie, ob der Benutzer die erforderliche App auf seinem Gerät installiert hat?
  • Wie starten Sie diese App?
  • Wie übergeben Sie Parameter an diese App?
  • Wie finden Sie alle diese Informationen für eine bestimmte App (sagen Adobe Reader oder Google Maps)?

Antwort

32

Wie zu sehen, ob Intent zur Verfügung:

  1. Versuchen Intent Aufruf und befassen sich mit ActivityNotFoundException wenn es nicht verfügbar ist

    Intent intent = new Intent(Intent.ACTION_VIEW); 
    intent.setDataAndType(path, "application/pdf"); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    
    try { 
        startActivity(intent); 
    } 
    catch (ActivityNotFoundException e) { 
        Toast.makeText(OpenPdf.this, 
         "No Application Available to View PDF", 
         Toast.LENGTH_SHORT).show(); 
    } 
    

    oder

  2. Query the Package Manager zu sehen, ob es vor der Zeit ist:

    PackageManager packageManager = getPackageManager(); 
    Intent intent = new Intent(Intent.ACTION_VIEW); 
    intent.setType("application/pdf"); 
    
    List list = packageManager.queryIntentActivities(intent, 
        PackageManager.MATCH_DEFAULT_ONLY); 
    
    if (list.size() > 0) { 
        intent.setDataAndType(path, "application/pdf"); 
        startActivity(intent); 
    } 
    

Wie Parameter an eine Anwendung zu übergeben oder kennen seine Fähigkeiten:

  1. List of Available Intents for Google Applications
  2. List of Intents by 3rd parties @ OpenIntents
+0

Es funktioniert nicht android 7.0 Bitte aktualisieren Sie die Antwort – Mariyappan

Verwandte Themen