Обнаружить входящий звонок в android с помощью kotlin не работает - PullRequest
0 голосов
/ 21 февраля 2020

не удалось найти ссылку на использование 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) 

}}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...