有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在Android中通过编程获得自己的电话号码?

我尝试了下面的代码来获取我自己的号码并得到一个空字符串。有什么问题吗

TelephonyManager mTelephonyMgr;     
 mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);     
 String phoneNumber = mTelephonyMgr.getLine1Number();

允许

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

共 (2) 个答案

  1. # 1 楼答案

    把这个加到你的清单上

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

    您需要用户的权限才能检索此数据

    如果它仍然返回null,这意味着数据不可用,您不能使用它

    Get my phone number in android

  2. # 2 楼答案

    使用TelephonyManager.getLine1Number()

    但是你需要在SIM卡上存储电话号码,而且没有其他方法可以获取“自己的号码”

    例如:

    TelephonyManager tm = (TelephonyManager)this.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE); 
    String myPhoneNumber =  tm.getLine1Number();
    

    你需要在你的舱单上得到这个许可。xml

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

    请看这个问题: TelephonyManager.getLine1Number() failing? 如前所述,您需要评估:

    if("SIM card present" && "phone number is stored") {
      "get the phone number with TelephonyManager.getLine1Number"
    }