首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用kotlin语言编程获取Android中SIM卡的手机号?

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

Stack Overflow用户
提问于 2018-01-12 17:36:43
回答 3查看 7.4K关注 0票数 1

我试着使用下面的代码,但它没有给我数字。你的信息将会有很大帮助。

代码如下:

代码语言:javascript
运行
复制
val subscription =SubscriptionManager.from(context).activeSubscriptionInfoList
for (subscriptionInfo in subscription)
{
   val number = subscriptionInfo.number
   Log.e("Test", " Number is  " + number)
}
EN

回答 3

Stack Overflow用户

发布于 2018-04-19 08:09:12

获取IMEI数字KOTLIN的正确方法

代码语言:javascript
运行
复制
try{
    val tm = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
    val IMEI = tm.getImei()
    if (IMEI != null)
        Toast.makeText(this, "IMEI number: " + IMEI,
                Toast.LENGTH_LONG).show()

}catch (ex:Exception){
    Log.e("",ex.message)
}

包括请求许可

代码语言:javascript
运行
复制
  if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
    if (ActivityCompat.shouldShowRequestPermissionRationale(this, android.Manifest.permission.READ_PHONE_STATE)) {
    } else { ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.READ_PHONE_STATE), 2) } }

别忘了AndroidManifest.xml

代码语言:javascript
运行
复制
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
票数 5
EN

Stack Overflow用户

发布于 2018-01-12 17:59:35

摘自this answer并翻译成kotlin:

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

代码语言:javascript
运行
复制
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() (一些设备不返回电话号码)

代码语言:javascript
运行
复制
//---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

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

请注意,由于内部实现的原因,某些设备无法返回电话号码。

票数 1
EN

Stack Overflow用户

发布于 2022-01-13 07:51:08

目前,您无法根据docs访问这些信息

  • getSerial()
  • getImei()
  • getDeviceId()
  • getMeid()
  • getSimSerialNumber()
  • getSubscriberId()

如果你的应用以Android10或更高版本为目标,就会出现SecurityException

如果您的应用程序以Android9(API28级)或更低版本为目标,并且应用程序具有READ_PHONE_STATE权限,则该方法将返回null或占位符数据。否则,将发生SecurityException

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48223321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档