package
com.ayush.gfgapp
import
android.Manifest
import
android.content.Context
import
android.content.pm.PackageManager
import
android.os.Bundle
import
android.telephony.SubscriptionManager
import
android.widget.ArrayAdapter
import
android.widget.Button
import
android.widget.Spinner
import
android.widget.TextView
import
androidx.appcompat.app.AppCompatActivity
import
androidx.core.app.ActivityCompat
class
MainActivity4 : AppCompatActivity() {
private
lateinit var spin: Spinner
private
lateinit var tv: TextView
private
lateinit var btnSubmit: Button
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContentView(R.layout.activity_main4)
tv = findViewById(R.id.tv)
spin = findViewById(R.id.spin)
btnSubmit = findViewById(R.id.btnSubmit)
btnSubmit.setOnClickListener {
getCarrierName()
}
val slots = arrayOf(
"1"
,
"2"
)
val _spinAdapter = ArrayAdapter(
this
, android.R.layout.simple_spinner_dropdown_item, slots)
spin.adapter = _spinAdapter
ActivityCompat.requestPermissions(
this
, arrayOf(Manifest.permission.READ_PHONE_STATE), PackageManager.PERMISSION_GRANTED)
}
private
fun getCarrierName() {
val susbsManager = getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE) as SubscriptionManager
if
(ActivityCompat.checkSelfPermission(
this
, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
tv.text =
"Permission not granted"
return
}
val subsManagerList = susbsManager.activeSubscriptionInfoList
try
{
val selectedSlot = spin.selectedItem.toString().toInt()
val subscriptionInfo = subsManagerList[selectedSlot -
1
]
val stringCarrierName = subscriptionInfo.carrierName?.toString() ?:
"Unknown"
tv.text = stringCarrierName
}
catch
(e: Exception) {
tv.text =
"Sim in slot ${spin.selectedItem.toString()} not available"
}
}
}