在Android上使用QUdpSocket发送数据

Sending data with QUdpSocket on Android

本文关键字:数据 QUdpSocket Android      更新时间:2023-10-16

我正在开发一个通过UDP套接字定期发送数据的应用程序。目前,我的代码运行良好,直到我尝试用Android测试该应用程序。

我使用的代码是:

m_outputSocket.writeDatagram (data, QHostAddress (robotAddress()), m_outputPort);

我在AndroidManifest.xml文件上相应地设置了以下权限:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>

更新,我还添加了INTERNET权限,但它仍然不起作用

<uses-permission android:name="android.permission.INTERNET"/>

在安卓系统上运行,我的应用程序无法通过UDP套接字发送和接收数据。附带说明一下,writeDatargram函数返回-1(根据Qt的文档指示错误)。

注意:

  • 我将Qt 5.6与Android SDK v19一起使用
  • 该代码适用于Windows和Linux,但不适用于Android
  • writeDatagram函数返回-1
  • 我已经相应地设置了AndroidManifest.xml文件的权限
  • 我尝试过这种解决方案,但初始化时应用程序崩溃

有什么可以做的让UDP在Android上使用Qt吗?

您也应该添加INTERNET权限。此权限允许应用程序打开网络套接字。

<uses-permission android:name="android.permission.INTERNET"/>