4

我想使用明确的意图在软件电话应用程序上启动特定号码。隐式应用程序如下所示:

Intent callIntent = new Intent(Intent.ACTION_CALL);
    callIntent.setData(Uri.parse(phone));
    startActivity(callIntent);

显式应用程序的启动如下所示:

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("example.app");
    startActivity(LaunchIntent);

问题:是否可以使用明确的意图传递 Uri 并使用 ACTION_CALL 启动应用程序?

4

1 回答 1

3

是的。使用您的示例,您可以执行以下操作:

Intent intent = getPackageManager().getLaunchIntentForPackage("example.app");
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse(phone));
startActivity(LaunchIntent);

当您使用显式Intent时,Android 不会使用 中的 ACTION 或 DATA 字段Intent来确定从哪个Activity开始。您已经在Intent. 但是您仍然可以在 中设置 ACTION 和 DATA 字段Intent以将信息传递给Activity您正在启动的对象。

于 2013-10-25T20:48:06.723 回答