Reputation: 9
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