정확히 같은 문제가 발생했습니다. UDP 패킷은 모토 E를 제외한 모든 전화기에서 작동합니다. 그런 다음 interwebz에 대한 매우 흥미로운 정보를 발견했습니다.
문제는 Moto E (그리고 아마도 Moto G)가 앱이 WifiManager.MulticastLock
을 획득하도록 요구한다는 것이 었습니다. android documentation -
애플리케이션이 Wi-Fi 멀티 캐스트 패킷을 수신 할 수 있도록합니다. 일반적으로 와이파이 스택은이 기기로 명시 적으로 주소 지정되지 않은 패킷을 걸러냅니다. MulticastLock을 획득하면 스택이 멀티 캐스트 주소로 주소가 지정된 패킷을 수신하게됩니다. 이 여분의 패킷을 처리하면 배터리가 눈에 띄게 유출 될 수 있으므로 필요하지 않은 경우 을 비활성화해야합니다.
당신은 앱에 다음과 같은 권한을 추가 할 필요가 -
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
그리고 코드에서과 같이 잠금을 획득 -
WifiManager wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
if(wifi != null){
WifiManager.MulticastLock lock = wifi.createMulticastLock("Log_Tag");
lock.acquire();
}
귀하의 궁금한 점은 무엇입니까? – BDL