在android中调用数字的隐含意图 - ACTION_DIAL和ACTION_CALL

时间:2014-08-25 15:55:24

标签: android android-intent implicit

我正在使用此代码拨号。但是,当我使用按钮执行代码时,Skype Messenger将被打开。为什么呢?

Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:+918053623401"));
startActivity(intent);

但是当我在下面使用这些代码时,当我用ACTION_DIAL替换ACTION_CALL时,代码工作正常。谁能告诉我为什么?

Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:+918053623401"));
startActivity(intent);

在使用隐式意图拨打数字的情况下,还有人可以给我添加CHOOSER的代码吗?提前谢谢

1 个答案:

答案 0 :(得分:2)

与任何其他应用程序一样,Skype可以注册在请求ACTION_CALLACTION_DIAL时触发的意图过滤器。
Skype自动打开的原因是:

  1. Skype是您设备上唯一注册ACTION_CALL
  2. 的应用
  3. 您手动将Skype设置为用于ACTION_CALL的默认应用。 您可以在设备的设置上重置此行为。转到应用程序管理器,选择Skype应用程序,然后选择erase default action
  4. 使用它来创建一个Intent选择器:

    startActivity(Intent.createChooser(yourIntent, "Select an app"));