如何使用kotlin语言以编程方式从Android中的SIM卡获取手机号码?

Gov*_*ogi 1 android kotlin

我尝试使用下面的一段代码,但它没有给我号码。你的信息会很有帮助。

代码如下:

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

Kin*_*ell 5

获取 IMEI 号码的正确方法 KOTLIN

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)
}
Run Code Online (Sandbox Code Playgroud)

包括请求许可

  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) } }
Run Code Online (Sandbox Code Playgroud)

不要忘记 AndroidManifest.xml

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
Run Code Online (Sandbox Code Playgroud)