如何在Android中获取移动SIM卡号(GSM)

时间:2017-03-28 10:12:47

标签: android mobile telephonymanager

我正在开发一个Android应用程序。因为我需要自动获取用户移动SIM卡号码以进行呼叫。但是我在获取用户的手机号码时遇到了问题。  我试过这个。

          TelephonyManager telemamanger = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    String getSimSerialNumber = telemamanger.getSimSerialNumber();

    String deviceID = telemamanger.getDeviceId();
    String getSimNumber = telemamanger.getLine1Number();

和这个

          TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);

    String network;
    ConnectivityManager cm = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
    if(cm.getActiveNetworkInfo().getTypeName().equals("MOBILE"))
        network = "cellnetwork/4G";
    else if(cm.getActiveNetworkInfo().getTypeName().equals("WIFI"))
        network = "wifi";
    else
        network ="na";

   String uphone = tm.getLine1Number();
    Toast.makeText(getApplicationContext(),uphone+" "+network,Toast.LENGTH_LONG).show();

在这些中,除了手机号码,我得到了我想要的所有信息。 是否有任何替代方法来获取像BHIM应用程序中的手机号码。 在BHIM app中,他们会自动获取手机号码(无论是单人还是双人)。

1 个答案:

答案 0 :(得分:0)

当然!

这些是您可以在SubscriptionManager和SubscriptionInfo上获得的一些信息。

虽然我不确定您需要在第三方应用上执行哪些权限。这就是我在公司框架上的表现:

private void fillSimNumber(TelephonyManager tm, SubscriptionInfo subscriptionInfo) {
    final String rawNumber =  tm.getLine1Number(subscriptionInfo.getSubscriptionId());

    if (!TextUtils.isEmpty(rawNumber)) {
        mSimNumber.setText(rawNumber);
    }
}

最好的运气!