0% found this document useful (0 votes)
74 views4 pages

Sim Num

The document is a Kotlin Android application code for a phone tracker that requests permissions to read phone numbers and states. It includes a WelcomeActivity class that handles permission requests and displays the SIM phone number if granted. If permissions are denied, it shows a toast message indicating the denial.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
74 views4 pages

Sim Num

The document is a Kotlin Android application code for a phone tracker that requests permissions to read phone numbers and states. It includes a WelcomeActivity class that handles permission requests and displays the SIM phone number if granted. If permissions are denied, it shows a toast message indicating the denial.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

package com.example.

phone_tracker

import android.Manifest

import android.annotation.SuppressLint

import android.content.pm.PackageManager

import android.os.Build

import android.os.Bundle

import android.telephony.SubscriptionManager

import android.util.Log

import android.widget.Button

import android.widget.TextView

import android.widget.Toast

import androidx.appcompat.app.AppCompatActivity

import androidx.core.app.ActivityCompat

class WelcomeActivity : AppCompatActivity() {

private lateinit var outputText: TextView

private lateinit var allowBtn: Button

private val permissionRequestCode = 101

private val tag = "PhoneTracker"

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_welcome)
outputText = findViewById(R.id.outputText)

allowBtn = findViewById(R.id.allowBtn)

allowBtn.setOnClickListener {

requestSimPermissions()

private fun requestSimPermissions() {

val permissions = arrayOf(

Manifest.permission.READ_PHONE_NUMBERS,

Manifest.permission.READ_PHONE_STATE

if (ActivityCompat.checkSelfPermission(

this,

Manifest.permission.READ_PHONE_NUMBERS

) == PackageManager.PERMISSION_GRANTED &&

ActivityCompat.checkSelfPermission(

this,

Manifest.permission.READ_PHONE_STATE

) == PackageManager.PERMISSION_GRANTED

){

val number = getSimPhoneNumber()


outputText.text = "SIM Phone Number: $number"

Log.d(tag, "Phone number: $number")

} else {

ActivityCompat.requestPermissions(this, permissions, permissionRequestCode)

@SuppressLint("MissingPermission")

private fun getSimPhoneNumber(): String {

val subscriptionManager = getSystemService(TELEPHONY_SUBSCRIPTION_SERVICE) as


SubscriptionManager

val subscriptions = subscriptionManager.activeSubscriptionInfoList

return if (subscriptions != null && subscriptions.isNotEmpty()) {

val number = subscriptions[0].number

if (number.isNullOrEmpty()) "Phone number not available" else number

} else {

"No SIM card found"

override fun onRequestPermissionsResult(

requestCode: Int,

permissions: Array<out String>,

grantResults: IntArray

){
super.onRequestPermissionsResult(requestCode, permissions, grantResults)

if (requestCode == permissionRequestCode && grantResults.all { it ==


PackageManager.PERMISSION_GRANTED }) {

val number = getSimPhoneNumber()

outputText.text = "SIM Phone Number: $number"

Log.d(tag, "Phone number: $number")

} else {

Toast.makeText(this, "Permission denied", Toast.LENGTH_SHORT).show()

You might also like