2010-05-27 13 views
21

Я понимаю, как использовать intents и startActivity() при открытии другого действия в моем собственном приложении, но как начать другое приложение? в частности:android: как открыть другое приложение из моего приложения?

  • Как вы определяете, установлено ли на нем приложение, установленное на нем?
  • Как начать это приложение?
  • Как передать параметры этому приложению?
  • Как найти эту информацию для конкретного приложения (скажем, Adobe Reader или карты Google)?

ответ

32

Как увидеть, если Намерение доступен:

  1. Попробуйте позвонить Intent и иметь дело с ActivityNotFoundException, если он не доступен

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

    или

  2. Query the Package Manager, чтобы увидеть, если он загодя:

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

Как передать параметры приложению или знать свои возможности:

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

Не работает андроид 7.0 обновите ответ – Mariyappan

Смежные вопросы