1

我想在我的 Android 应用程序中接收 callerId 回调。我遵循了它的创建者提供的示例,该示例可在此处获得。

我的监听功能看起来像这样(完全复制,但在 Kotlin 中):

private fun startListening() {
        val socket = DatagramSocket(null)
        val address = InetSocketAddress("255.255.255.255", 3520)
        socket.reuseAddress = true
        socket.broadcast = true
        socket.bind(address)

        var looping = true
        var buffer = ByteArray(65507)

        while (looping) {
            val dp = DatagramPacket(buffer, buffer.size)
            try {
                log.debug("Waiting for call")
                socket.receive(dp)

                val recString = String(dp.data, 0, dp.length)

                log.debug("Received new message: $recString")
                _callReceivedLive.postValue(recString)
            } catch (e: Exception) {
                log.error("Exception in CallerIdListener", e)
                looping = false
            }
        }
    }

在使用 Android 5.1.1 版本的设备上安装它后,一切似乎都很好。我使用以太网模拟器模拟的每个调用都会被应用程序接收。现在,在装有 Android 版本 9 的三星 Galaxy Tab 上启动此应用程序后,它只收到了大约 30% 的电话。

知道可能出了什么问题吗?

4

0 回答 0