如何在Android中拨号时显示活动选择器菜单?

时间:2011-06-14 19:42:57

标签: android android-activity skype

我正在尝试在拨号时显示活动选择器菜单。以下代码在发送电子邮件时适用于我(来自真实手机,在模拟器中无效):

        /* Create the Intent */
    final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);

    /* Fill it with Data */
    emailIntent.setType("plain/text");
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"to@email.com"});
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject");
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Text");

    /* Send it off to the Activity-Chooser */
    this.startActivity(Intent.createChooser(emailIntent, "Send mail..."));

但当我将代码更改为:

        Intent call = new Intent(android.content.Intent.ACTION_CALL);
    call.setData(Uri.parse("tel:" + phoneNo));
    this.startActivity(Intent.createChooser(call, "Hello there..."));

没有显示活动选择器菜单,只是直接拨号。我还想在该菜单中列出Skype。你有什么想法吗?

1 个答案:

答案 0 :(得分:1)

当其他人({3}}中的某人回答时,您确实需要阅读previous questions。我会给你一个快速的解释。 Intent是Android应用程序可以注册处理的一种消息。如果未安装Skype,则无法注册Intent,因此不会显示在该菜单中。如果 已安装且仍未显示,则表示尚未注册Intent。我不知道Android Skype应用程序,但从另一个问题中您链接的Intents and Filters判断,它似乎注册了Intent并在安装时显示。