在Android上使用QUdpSocket发送数据

时间:2016-05-08 22:33:54

标签: android c++ qt sockets udp

我正在开发一个通过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"/>

在Android上运行,我的应用程序无法通过UDP套接字发送和接收数据。作为旁注,writeDatargram函数返回-1(表示根据Qt's documentation的错误)。

备注:

  • 我正在使用Qt 5.6和Android SDK v19
  • 该代码适用于Windows和Linux,但不适用于Android
  • writeDatagram函数返回-1
  • 我已在AndroidManifest.xml文件中相应地设置了权限
  • 我尝试了this solution,但初始化时应用程序崩溃了。

使用Qt在Android上运行UDP是否可以做任何事情?

1 个答案:

答案 0 :(得分:0)

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

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