0

私はビデオ通話を使用して内部チャット アプリケーションで作業しています。誰かが電話をかけると、電話は「呼び出し中」の画面を表示する必要があります。誰かが電話をかけているというプッシュ通知をアプリが受信したときに、電話画面を起動し、通話画面で全画面通知を表示する必要があります。

どうやってやるの?ありがとうございました。

4

1 に答える 1

0

TelephonyManagerを使用して、ネイティブで利用可能な API のサブセットにアクセスできるようにする必要があります。

このインスタンスを作成したらlisten()、PhoneStateListener を実装するクラスを渡すように登録する必要があります。ここから、さまざまな状態を聞くことができます。LISTEN_CALL_STATE

このようなもの:

private var yourListenerClass: ListenerClass? = null

override fun onCreate(savedInstanceState: Bundle?) {
     var telephonyManager = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
     telephonyManager?.listen(yourListenerClass, PhoneStateListener.LISTEN_CALL_STATE)
}

private inner class ListenerClass : PhoneStateListener() {
     override fun onCallStateChanged(state: Int, number: String?) {
          super.onCallStateChanged(state, number)
          when (state) {
            TelephonyManager.CALL_STATE_RINGING-> {
               //incoming call detected, do something
            }
            TelephonyManager.CALL_STATE_IDLE-> {
            }
        }
     }
}

以下は、このリスナーで使用できる API をさらに提供するドキュメントのリソースです: onCallStateChanged()

于 2020-08-28T23:38:18.017 に答える