Подтвердить что ты не робот

Android: как открыть другое приложение из моего приложения?

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

  • Как вы определяете, установлено ли у пользователя необходимое приложение на своем устройстве?
  • Как запустить это приложение?
  • Как передать параметры этому приложению?
  • Как вы находите всю эту информацию для конкретного приложения (скажем, Adobe reader или google maps)?
4b9b3361

Ответ 1

Как узнать, доступно ли Intent:

  • Попробуйте называть 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();
    }
    

    или

  • Запросить диспетчер пакетов, чтобы узнать, есть ли это раньше времени:

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

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