не удалось найти ссылку на использование kotlin для обнаружения входящего вызова с использованием динамически созданного BroadcastReceiver. большинство java программ добавляют намерения в манифест. Я хотел использовать Broadcastreciever в заданном c действии. Я использовал код ниже, но не работает. Кто-нибудь может помочь?
Проблема: 1. Как настроить фильтр намерений для Phone_State
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val broadCastReceiver = object : BroadcastReceiver() {
override fun onReceive(contxt: Context?, intent: Intent?) {
try {
println("Receiver start")
val state = intent!!.getStringExtra(TelephonyManager.EXTRA_STATE)
val incomingNumber =
intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER)
if (state == TelephonyManager.EXTRA_STATE_RINGING) {
Toast.makeText(applicationContext, "Incoming Call State", Toast.LENGTH_SHORT).show()
Toast.makeText(applicationContext,
"Ringing State Number is -$incomingNumber",
Toast.LENGTH_SHORT
).show()
}
if (state == TelephonyManager.EXTRA_STATE_OFFHOOK) {
Toast.makeText(applicationContext, "Call Received State", Toast.LENGTH_SHORT).show()
}
if (state == TelephonyManager.EXTRA_STATE_IDLE) {
Toast.makeText(applicationContext, "Call Idle State", Toast.LENGTH_SHORT).show()
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
// Set When broadcast event will fire.
val filter = IntentFilter(Intent.ACTION_CONFIGURATION_CHANGED)
LocalBroadcastManager.getInstance(this).registerReceiver(broadCastReceiver, filter)
}}