Por que a recepção multicast não funciona em alguns dispositivos Android?

Parece que a recepção multicast não funciona em alguns dispositivos Android. Não consigo receber multicast com 4 dos 13 dispositivos de teste. Nesses 4 dispositivos, parece que o aplicativo não envia a solicitação IGMP para ingressar no grupo multicast.

O código para receber o multicast é assim:

WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
WifiManager.WifiLock wifiLock = wifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, TAG);
WifiManager.MulticastLock multicastLock = wifiManager.createMulticastLock(TAG);
multicastLock.setReferenceCounted(true);

wifiLock.acquire();
multicastLock.acquire();

try {
    MulticastSocket socket = new MulticastSocket(32123);

    InetAddress group = InetAddress.getByName("224.1.2.3");
    socket.joinGroup(group);

    DatagramPacket packet;
    byte[] buf = new byte[256];
    packet = new DatagramPacket(buf, buf.length);

    socket.receive(packet);

    socket.leaveGroup(group);
    socket.close();
} catch (IOException e) {
    e.printStackTrace();
}

multicastLock.release();
wifiLock.release();

O aplicativo tem as seguintes permissões:

<uses-permission android:name="android.permission.INTERNET"/>
<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_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>

Para demonstrar o problema, criei um pequeno projeto de teste usando o código acima no GitHub:MulticastTest.

Existe algum problema com o meu código? Perdi uma permissão?

EDIT 1: Esse problema não parece estar relacionado a uma versão específica do Android. Posso reproduzir o comportamento no Android 4.x, 5.xe 6.x.

EDIT 2: Existe um relacionadoPergunta, questão.

questionAnswers(1)

yourAnswerToTheQuestion