【发布时间】:2014-10-17 14:58:36
【问题描述】:
我正在编写一个程序,它通过 TCP/IP 将安卓手机用作遥控器。手机托管一个热点网络,设备通过知道 SSID 和密码连接到该网络。然后它通过套接字编程连接到设备。我的问题是我不知道如何在 android 的 Java 代码中找到连接的设备 IP 地址。下图显示了我需要找到的内容。下图是连接到网络的东西。 192.168.43.15和192.168.43.102
我可以查看屏幕并知道 IP 并手动输入它或在应用程序中对其进行硬编码以测试应用程序本身。但应用程序需要自动查找 IP 地址。用户不需要手动输入类似的内容。
我尝试了this,但它对我不起作用。我在 Android 清单中有以下权限
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
由于图片中的已连接设备列表在设备连接和断开连接时会实时更新,因此我认为找到它们的方法比尝试 ping 网络中的每个地址以查看答案更好。
【问题讨论】:
-
如果您想通过 ping Check this answer 列出网络上的设备!
-
我写道“我认为找到它们比尝试 ping 网络中的每个地址更好”
标签: java android networking