【问题标题】:Android: How to show a list of dialer app installed on my device instead of directly calling default dialerAndroid:如何显示安装在我的设备上的拨号器应用程序列表,而不是直接调用默认拨号器
【发布时间】:2015-08-17 06:58:00
【问题描述】:

Android:如何显示安装在我的设备上的拨号器应用列表,而不是直接调用默认拨号器

Intent intent = new Intent(Intent.ACTION_CALL);
startActivity(intent); 

权限 -

<uses-permission android:name="android.permission.CALL_PHONE" /> 

因此,使用此代码调用默认拨号器应用程序。我想要 Android 向我建议可用于呼叫功能的应用列表的行为。

【问题讨论】:

标签: android android-intent android-dialer


【解决方案1】:

使用 ACTION_CALL 意图时,您不能显示拨号器列表。

您需要特殊权限,因为 ACTION_CALL 是受保护的操作,允许您直接拨打电话号码,无需用户交互。

您可以为 ACTION_DIAL 意图创建意图选择器,它允许您显示具有拨号器的应用程序列表。您可以使用此代码。

final Intent intent = new Intent();
intent.setAction(Intent.ACTION_DIAL);
intent.setData(Uri.fromParts("tel", "123456", null));
startActivity(Intent.createChooser(intent, ""), REQUEST_CODE));

希望对你有帮助!

【讨论】:

  • ACTION_DIAL 有帮助,但我仍然只能在列表中找到两个应用程序。即电话和你好拨号器。我也想看看 Skype 和其他 VoIP 应用程序。是否有其他许可?
  • 有不同的 uri 方案,例如 tel 用于普通呼叫,skype 用于 Skype 电话和 sip 用于 voip 呼叫。目前我们已将 tel 方案传递给 Intent,因此 voip 和 skype 不会显示在列表中。
猜你喜欢
  • 2014-04-14
  • 1970-01-01
  • 2019-11-24
  • 1970-01-01
  • 2016-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多