2010-05-27 16 views
21

Capisco come usare intents e startActivity() quando si apre un'altra attività all'interno della mia app, ma come si avvia un'app diversa? in particolare:android: come posso aprire un'altra app dalla mia app?

  • Come si determina se l'utente ha installato l'app necessaria sul proprio dispositivo?
  • Come si avvia quell'app?
  • Come si passano i parametri a tale app?
  • Come si trovano tutte queste informazioni per un'applicazione specifica (ad esempio, Adobe Reader o Google Maps)?

risposta

32

Come per vedere se è disponibile Intent:

  1. Prova a chiamare intenti e trattare con ActivityNotFoundException se non è disponibile

    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(); 
    } 
    

    o

  2. Query the Package Manager per vedere se si tratta di prima del tempo:

    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); 
    } 
    

come passare parametri a un'applicazione o conoscono le sue capacità:

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

Non funziona android 7.0 si prega di aggiornare la risposta – Mariyappan

Problemi correlati