【问题标题】:How can I select from multiple numbers to dial from with button click?如何通过单击按钮从多个号码中进行选择?
【发布时间】:2015-11-26 05:47:27
【问题描述】:

我目前有一个带有“通话”按钮的应用。我想知道是否有办法在弹出窗口中列出不同的号码以进行拨号。例如,我关闭了边界,这个应用程序将在两侧使用。目标号码来自墨西哥。如果来电者从墨西哥拨打,他们可以这样拨打:(654)456-3445,但如果您从美国拨打,则必须这样拨打:01152(653)456-3445。我如何提示用户选择他们想要拨打的格式,或者有没有办法让他们在该提示中选择他们从哪里拨打电话并让应用程序相应地拨号?或者如果有人有更好的建议,那就太好了!

这是我目前拨打号码的方式,但我希望他们能够选择:

call.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent callIntent = new Intent(Intent.ACTION_DIAL);
        callIntent.setData(Uri.parse("tel:011526544567890"));
        startActivity(callIntent);
    }
});

编辑:这是我最终使用的。

public void onClick(View v) {
    String number;

    TelephonyManager tm = (TelephonyManager) getActivity().getSystemService(Context.TELEPHONY_SERVICE);
    String countryCode = tm.getSimCountryCode();

    if (countryCode.equalsIgnoreCase("us")) {
        number = "tel:011526531232233";
    } else {
        number = "tel:6531232233";
    }

    Intent callIntent = new Intent(Intent.ACTION_DIAL);
    callIntent.setData(Uri.parse(number));
    startActivity(callIntent);
}

【问题讨论】:

    标签: java android


    【解决方案1】:

    您可能想尝试 java.util.Locale 类并自动添加电话号码前缀,该前缀取决于应用程序在哪个国家/地区运行。

    你的国家:

    System.out.println(java.util.Locale.getDefault().getDisplayCountry());

    【讨论】:

    • 谢谢!尽管我没有完全使用您提到的内容,但它帮助我找到了另一种方法。我将编辑我的问题并将我的解决方案添加到底部。
    【解决方案2】:

    在调用 ACTION_DIAL 意图之前,您可以有一个对话框,显示他们将调用的格式化号码(带有一个呼叫按钮,单击该按钮将调用 ACTION_DIAL 意图)。从对话框中,他们可以通过 EditText 更新格式。

    或者,您可以检查用户位置并使用已根据位置格式化的数字更新对话框。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      • 2023-02-19
      • 1970-01-01
      • 2016-04-13
      • 2016-02-12
      相关资源
      最近更新 更多