Staffay Kayser
Staffay Kayser

Reputation: 9

Android: How can i get my own telephone number programatically?

I am trying to get my own number through code in Android, but the telephonyManager.line1Number is deprecated. I tried with SubscriptionsManager instead, but it returns null. I have the required permissions in the manifest.

Here's my code (Kotlin)

val subscriptionManager = applicationContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE) as SubscriptionManager
val defaultSubscriptionId = SmsManager.getDefaultSmsSubscriptionId()
    
        if (ActivityCompat.checkSelfPermission(
                this,
                Manifest.permission.READ_SMS
            ) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
                this,
                Manifest.permission.READ_PHONE_NUMBERS
            ) ==
            PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
                this,
                Manifest.permission.READ_PHONE_STATE
            ) == PackageManager.PERMISSION_GRANTED
        )
            {
                // Permission check
                val defaultSubscriptionInfo: SubscriptionInfo? = subscriptionManager.getActiveSubscriptionInfo(defaultSubscriptionId)
                popup(defaultSubscriptionInfo.toString())
                return
            } else {
            // Ask for permission
            requestPermission()
        }

Upvotes: 1

Views: 48

Answers (0)

Related Questions