如何在Android中使用SIM卡获取手机号码使用kotlin语言编程?

我尝试使用下面的一段代码,但它没有给我的数字。 您的信息将是很大的帮助。

代码如下:

val subscription =SubscriptionManager.from(context).activeSubscriptionInfoList for (subscriptionInfo in subscription) { val number = subscriptionInfo.number Log.e("Test", " Number is " + number) } 

采取从这个答案和翻译到kotlin:

获取电话号码,IMEI和SIM卡ID

 val tm = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager For SIM card, use the getSimSerialNumber() //---get the SIM card ID--- val simID = tm.simSerialNumber if (simID != null) Toast.makeText(this, "SIM card ID: " + simID, Toast.LENGTH_LONG).show() 

手机的电话号码,使用getLine1Number()(某些设备不返回电话号码)

 //---get the phone number--- val telNumber = tm.line1Number if (telNumber != null) Toast.makeText(this, "Phone number: " + telNumber, Toast.LENGTH_LONG).show() IMEI number of the phone, use the getDeviceId() //---get the IMEI number--- val IMEI = tm.deviceId if (IMEI != null) Toast.makeText(this, "IMEI number: " + IMEI, Toast.LENGTH_LONG).show() Permissions needed  

请注意, 有些设备由于其内部实施而无法返回电话号码