【问题标题】:Get mobile Number on GSM Mobile using android code使用 android 代码在 GSM Mobile 上获取手机号码
【发布时间】:2013-04-26 09:01:09
【问题描述】:

我正在使用以下 android 代码获取手机号码,它仅适用于 android 模拟器:

TelephonyManager tm =(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String number = tm.getLine1Number();

但是当我在真实设备(Samsung Galaxy Chat B5330)中测试它时,它什么也没给出(空字符串)

请帮助一些代码sn-p。

【问题讨论】:

  • 可能必须使用当地运营商的 USSD 代码,不确定但我也有兴趣知道!
  • 取决于 SIM 卡。您可以在这里找到有用的答案:stackoverflow.com/a/5134725/2198638.

标签: android telephonymanager


【解决方案1】:

对于 GSM,电话号码在 SIM 卡上,有些运营商只是不把它放在卡上,然后手机不知道它是什么,但在这种情况下你 应该得到一个空字符串而不是 null

如果运营商将号码存储在您的 SIM 卡上,请转至 Settings -> About Phone -> Status -> My phone Number。如果那里显示unknown,那么您的号码没有存储在 SIM 卡上。

获取IMEI使用:

TelephonyManager tm =(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
imei_no = tm.getDeviceId(); 

【讨论】:

  • 是的,它显示未知....有没有其他方法可以获取手机号码(通过使用 sim 卡号或 IMEI)??
  • 我不认为有其他方法..因为它完全取决于移动运营商公司(如vodaphone ......等)意味着他们不给我们手机号码然后我们如何得到它..
【解决方案2】:

添加权限

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

this

【讨论】:

    【解决方案3】:

    您必须使用电话管理器;如果您根本没有找到联系号码。用户的; 您可以通过使用相同的电话管理器类来获取 SIM 卡的 Sim 序列号和 Android 设备的 Imei 号...

    添加权限:

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

    进口:

    import android.telephony.TelephonyManager;
    

    使用下面的代码:

    TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
    
             // get IMEI
             imei = tm.getDeviceId();
    
             // get SimSerialNumber
             simSerialNumber = tm.getSimSerialNumber();
    

    【讨论】:

      猜你喜欢
      • 2019-12-07
      • 2022-08-24
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多