我想在我的 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% 的电话。
知道可能出了什么问题吗?