Android从内部和内部拨打电话外国

时间:2015-07-14 07:30:37

标签: android telephony

很简单,我想在点击它时拨打一个号码。但是,如果你在阿曼里面,我想拨打一个号码,如果你在外面我想拨打另一个号码。

我试过这个,想知道它是否正确的方法......或者我必须依赖别的东西

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"));

1 个答案:

答案 0 :(得分:1)

您正走在正确的道路上,但您可能想要致电:

tManager.getNetworkCountryIso()

通过这种方式,您可以获得手机所连接的移动网络所在的国家/地区,而不是SIM卡所在的国家/地区(始终相同)。

旁注:您不需要检查设备是否具有电话功能 - 如果它没有,那么tManager将无效。