【问题标题】:android: how do i open another app from my app?android:我如何从我的应用程序中打开另一个应用程序?
【发布时间】:2011-02-24 18:44:19
【问题描述】:

我了解在我自己的应用中打开另一个 Activity 时如何使用 Intent 和 startActivity(),但是如何启动另一个应用?具体来说:

  • 您如何确定用户的设备上是否安装了所需的应用程序?
  • 如何启动该应用程序?
  • 如何将参数传递给该应用程序?
  • 如何找到特定应用程序(例如 Adob​​e 阅读器或谷歌地图)的所有这些信息?

【问题讨论】:

    标签: android api android-activity


    【解决方案1】:

    这对我有用:

    Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.example.testing_app");
    if (launchIntent != null) {
        startActivity(launchIntent);
    } else {
        Toast.makeText(MainActivity.this, "testing_app is not installed", Toast.LENGTH_LONG).show();
    }
    

    【讨论】:

      【解决方案2】:

      如何查看 Intent 是否可用:

      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

      【讨论】:

        【解决方案3】:

        您正在寻找的是 intentsintent 过滤器

        Android 开发者指南中详细介绍了您想了解的一切。

        http://developer.android.com/guide/topics/intents/intents-filters.html

        【讨论】:

          猜你喜欢
          • 2022-01-12
          • 1970-01-01
          • 1970-01-01
          • 2011-03-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-12
          • 2021-08-20
          相关资源
          最近更新 更多