Android 从国内外拨打电话

Android making phones calls from inside & outside country

这很简单,我想在点击它时创建一个功能,它会调用 number.However,如果你在阿曼境内,我想拨打一个号码,如果你在国外,我想拨打另一个号码。

我试过了,想知道这样做是否正确...或者我必须依赖其他东西

PackageManager pm = getPackageManager();
                boolean hasTelephony = pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY);
                if(hasTelephony)
                {
                    TelephonyManager tManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
                    if(tManager != null)
                    {
                        String locale = tManager.getSimCountryIso();
                        if(locale != null && locale.toLowerCase().equals("om"))
                        {
                            i.setData(Uri.parse("tel:800"));
                        }
                        else
                            i.setData(Uri.parse("tel:+9687"));
                    }
                    else
                        i.setData(Uri.parse("tel:+9687"));
                }
                else
                    i.setData(Uri.parse("tel:+9687"));

您的方向是正确的,但您可能想致电:

tManager.getNetworkCountryIso()

这样您就可以获得您的 phone 所连接的移动网络所在的国家/地区,而不是您的 SIM 卡所在的国家/地区(始终相同)。

附带说明:您无需检查设备是否具有电话功能 - 如果没有,则 tManager 无论如何都会为 null。