I need to get phonenumber from incoming call it works well below Android 12 device with this method
val number = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER)
but for Android 12 and above device (TelephonyManager.EXTRA_INCOMING_NUMBER) data is not available in intent.
Manifest permission is not issue I can add any permission if required. I've added this permission in my manifest
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.WRITE_CALL_LOG" />
I've also tried contentResolver query but it gives second last number data in cursor not current incoming call data.
val cancellationSignal = CancellationSignal()
val cursor = context.contentResolver.query(
CallLog.Calls.CONTENT_URI,
null,
CallLog.Calls.TYPE + " = ?",
arrayOf(CallLog.Calls.INCOMING_TYPE.toString()),
CallLog.Calls.DATE + " DESC",
cancellationSignal
)
if (cursor != null && cursor.moveToFirst()) {
val indexNumber = cursor.getColumnIndex(CallLog.Calls.NUMBER)
val number = cursor.getString(indexNumber)
print(number)
cancellationSignal.cancel()
cursor.close()
}
Does anyone know How to find number for Android 12 and above device?
try this in Call.Details