Я пытаюсь разработать приложение для Android, которое бы отображало вызовы в списке. Я использовал вещательный приемник. По умолчанию трансляция PHONE_STATE_CHANGED доставляется более одного раза за каждый входящий вызов. В результате я получаю повторяющиеся записи числа в списке. Я просто хочу одну запись для каждого звонка. Насколько я знаю, я должен отслеживать изменения состояния трансляций, как, например, только добавление элемента в список, если предыдущее состояние было незанятым, а новое состояние звонит. Но я не могу этого сделать. Может ли кто-нибудь помочь мне с этим? Вот код для отображения списка номеров.
class CallReceiver(var mainActivity: MainActivity): BroadcastReceiver(){
val TAG=CallReceiver::class.java.simpleName
override fun onReceive(context: Context?,intent: Intent?){
var action=intent?.action
val prev:String
val state:String
Log.i(TAG,action)
//intent?.hasExtra(TelephonyManager.EXTRA_STATE)
if(intent!!.hasExtra(TelephonyManager.EXTRA_STATE))
{
state = intent?.getStringExtra(TelephonyManager.EXTRA_STATE)
Log.i(TAG,"State is: $state")
}
if(intent!!.hasExtra((TelephonyManager.EXTRA_INCOMING_NUMBER))){
val number =
intent?.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER)
mainActivity.addPhoneNumberList(number)
}
}
}