【问题标题】:Android app to get system phone number获取系统电话号码的安卓应用
【发布时间】:2013-03-05 12:18:16
【问题描述】:

我正在尝试使用以下代码获取系统电话号码

TelephonyManager tMgr =(TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
mPhoneNumber = tMgr.getLine1Number();

但它不起作用。

在我的手机中,我使用

设置->关于手机-->状态-手机号码

有没有我可以使用的简单应用程序? ,我在土耳其写信。 sim卡有区别吗?

【问题讨论】:

  • 如果 Status 中的电话号码未知,则问题可能与 SIM 卡有关。如果 SIM 卡中不知道电话号码,那么 Android 或您的 Android 应用程序与此无关。如果可能的话,我建议您尝试使用另一张 SIM 卡,并根据结果查看您的问题。

标签: android sdk device apk


【解决方案1】:

并非所有电信运营商都将电话号码存储在 SIM 卡上。您使用的方法仅适用于设备中的 SIM 卡上存储有手机号码的情况。

如果您在移动设置中看不到您的电话号码,则表示它没有存储在 SIM 卡上。如果您绝对需要,您将不得不手动要求用户将其输入到您的应用程序中。没有其他办法。

【讨论】:

    【解决方案2】:

    你可以试试这样的。效果很好。

    public  String getPhoneNumber(Context context) {
            TelephonyManager mTelephonyMgr;
            mTelephonyMgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
            String num = mTelephonyMgr.getLine1Number();
            return fillPhoneNumber(num);
        }
    private   String fillPhoneNumber(String num) {
        try{
            if (num != null && num.length() > 0) {
                if (num.length() >= 9) {
                    num = num.replaceAll("\\D", "");
                    if (num.substring(0, 1).equals("8")) {
                        num = "+3" + num;
                    } else if (num.substring(0, 1).equals("0")) {
                        num = "+38" + num;
                    } else if (num.substring(0, 1).equals("3")) {
                        num = "+" + num;
                    }
                }
                return num;
            }
    
        }catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    

    注意:并非所有手机都会返回电话号码。

    【讨论】:

      【解决方案3】:

      没有确定的方法可以找到 MSISDN。上述方法仅在 SIM 已存储 MSISDN 时有效。其他解决方法是从 facebook 检索号码。它也可能会或可能不会起作用。 唯一确定的方法是使用一些 SMS 网关提供商(例如 http://trumpia.com)创建帐户,然后将 SMS 发送到免费电话号码,然后调用 API 检索 MSISDN。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多