В моем приложении я хочу транслировать некоторые UDP-пакеты. Я в настоящее время использую этот Methode, чтобы получить нужный широковещательный адрес:Android-передача UDP-трансляции на устройстве, разрешающем использование точки доступа
InetAddress getBroadcastAddress() throws IOException {
WifiManager wifi = mContext.getSystemService(Context.WIFI_SERVICE);
DhcpInfo dhcp = wifi.getDhcpInfo();
// handle null somehow
int broadcast = (dhcp.ipAddress & dhcp.netmask) | ~dhcp.netmask;
byte[] quads = new byte[4];
for (int k = 0; k < 4; k++)
quads[k] = (byte) ((broadcast >> k * 8) & 0xFF);
return InetAddress.getByAddress(quads);
}
->https://code.google.com/p/boxeeremote/wiki/AndroidUDP
Это работает отлично, но если устройства активировал горячую точку и пытается транслировать пакет следующего SocketException брошено : SocketException: sendto failed: ENETUNREACH (Network is unreachable)
Как я могу получить правильный широковещательный адрес на устройстве, которое обеспечивает «горячую точку»? Все одноадресные адреса я попытался еще работал нормально ...
ТНХ & рассматривает
PS: минимум SDK является API 8!