android - 从 ip 地址获取广播地址的最佳方法是什么?

标签 android wifi broadcast

我正在编写一个 android 应用程序,它应该通过 WiFi 发送广播数据包。

目前我可以从 WifiManager.getConnectionInfo().getIpAddress() 获取设备的 IP 地址,并通过简单地将最后一位数字替换为 0 来猜测广播地址。但我真的不知道喜欢这个解决方案。

什么是正确的方法?

最佳答案

尝试这样的事情:

    public static String getBroadcast(){
    String found_bcast_address=null;
     System.setProperty("java.net.preferIPv4Stack", "true"); 
        try
        {
          Enumeration<NetworkInterface> niEnum = NetworkInterface.getNetworkInterfaces();
          while (niEnum.hasMoreElements())
          {
            NetworkInterface ni = niEnum.nextElement();
            if(!ni.isLoopback()){
                for (InterfaceAddress interfaceAddress : ni.getInterfaceAddresses())
                {

                  found_bcast_address = interfaceAddress.getBroadcast().toString();
                  found_bcast_address = found_bcast_address.substring(1);

                }
            }
          }
        }
        catch (SocketException e)
        {
          e.printStackTrace();
        }

        return found_bcast_address;
}

关于android - 从 ip 地址获取广播地址的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13431675/

相关文章:

android - 打开 android XML 文件在新安装的 Eclipse 中显示 NullpointerException

android - 两者都启用时如何使用数据连接而不是WIFI?

java - 如何以及如何设置 Android WifiConfiguration.preSharedKey 以连接到 WPA2 PSK WiFi 网络

iphone - 有没有办法在 iOS 中以编程方式打开和关闭 wifi?

Android EditText真实内容高度

android - Seterror 信号没有消失并且搜索正在运行

android - 使用 AsyncTask 打开相机

broadcast - Dask Scatter 广播列表

java - DatagramPacket.getAddress().getHostName() 正在阻塞我的线程

java - 我如何知道 wifi 连接是否有效?