在 android 应用程序的列表中显示调用
Displaying calls in a list in android application
我正在尝试开发一个 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)
}
}
}
您可以使用 hashmap 删除重复条目,这样之前的条目会覆盖新条目
你走在正确的轨道上。您应该使用 BroadcastReceiver 的智能实现来了解 phone 状态端发生的事情......
一些 类 已经存在,take a look at this gist 可能会帮助您实现您想要的!
我正在尝试开发一个 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)
}
}
}
您可以使用 hashmap 删除重复条目,这样之前的条目会覆盖新条目
你走在正确的轨道上。您应该使用 BroadcastReceiver 的智能实现来了解 phone 状态端发生的事情...... 一些 类 已经存在,take a look at this gist 可能会帮助您实现您想要的!