【问题标题】:Get sim number in android programmatically以编程方式获取android中的sim号码
【发布时间】:2017-12-31 08:16:38
【问题描述】:

我想验证用户手机号码是否与在 Android 应用程序注册期间设备中使用的 sim 号码相同。

如何在我的应用中获取 sim 号码以与用户输入的号码进行比较?

如果不可能,还有其他验证过程吗?

【问题讨论】:

标签: android


【解决方案1】:

此代码可以找到 sim 号码,但前提是该号码已保存在我们的手机中 目录,否则我们无论如何都找不到 sim 号码。

 TelephonyManager telephonyManager = (TelephonyManager) 
 getSystemService(Context.TELEPHONY_SERVICE);
 mobile number = telephonyManager.getLine1Number();

真的不可能只有那些保存了他们的 sim 号码的设备 可以的。 OTP 验证流程最适合此,请输入您的 编号并获取 otp 进行验证。

【讨论】:

    【解决方案2】:

    尝试以下代码获取sim序列号并获取sim号

    TelephonyManager tManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    String getSimSerialNumber = tManager.getSimSerialNumber();
    String getSimNumber = tManager.getLine1Number();
    
    Log.v(TAG, "getSimSerialNumber : " + getSimSerialNumber +" ,getSimNumber : "+ getSimNumber);
    

    在您的 Androidmanifest.xml 中添加以下权限

    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    

    【讨论】:

    • 我可以用这个方法来验证用户单元格吗
    • 它给了我 null :(
    • 你找不到 sim 号码,我也用过这个但总是给 null
    • 手机号码取决于 SIM 卡和网络运营商/手机运营商。
    【解决方案3】:

    您可以使用此代码找到第一个 sim 号码。

    TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    mobileNumber = telephonyManager.getLine1Number();
    

    在清单中添加这个uses-permission

    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    

    此代码会对您有所帮助,但有时它不会返回确切的结果。最好的选择是在询问用户手机号码后验证号码。

    这对你有帮助,对我也有帮助。

    【讨论】:

      猜你喜欢
      • 2021-02-07
      • 1970-01-01
      • 2017-05-21
      • 2013-06-22
      • 2018-06-21
      • 2011-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多