如何从Android App启动其他Android应用程序?

时间:2016-01-21 10:52:40

标签: android android-intent

如果我的应用程序包名为App,如何从Android应用程序启动其他Android应用程序?

例如:我在 Android应用中创建Button。当按下按钮时,Skype将启动。

  1. 是否可以在Android中执行上述操作?
  2. 单击Button时是否应该使用Intent启动其他应用程序?
  3. 需要什么许可?
  4. 提前致谢。

5 个答案:

答案 0 :(得分:2)

  

如果您有其他应用包名称

,请单击

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("other app package name");
startActivity(LaunchIntent);

答案 1 :(得分:1)

因为你提到的不是你的应用程序,“Skype”。您可以在意图中使用应用程序的包ID。

Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.package.address");
startActivity(launchIntent);

对于 Skype ,它变为,

Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.skype.raider");
startActivity(launchIntent);

在您的Java文件中,请说 MainActivity.java

    Button button = (Button) findViewById(R.id.button);

    button.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {

    Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.skype.raider");
    startActivity(launchIntent);
                }
            });

在布局文件中,例如 activity_main.xml

 <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Skype →"
        android:id="@+id/button"
        android:textColor="@color/white"/>

答案 2 :(得分:1)

您可以使用以下代码启动Skype或任何其他应用:

PackageManager packageManager = getPackageManager();
Intent intent = packageManager.getLaunchIntentForPackage("<skype_package_name>");
startActivity(intent);

答案 3 :(得分:0)

试试这段代码:

cuComplex.h

答案 4 :(得分:0)

    final String appPackageName = "com.example";
                        final Intent openPlayStore = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName));
                        if (hasHandlerForIntent(openPlayStore))
                            startActivity(openPlayStore);
                        else
                            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));

private boolean hasHandlerForIntent(Intent intent) {
        return getActivity().getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY).size() > 0;
    }