在安卓中,要确保应用程序能够接收UDP广播,需要进行以下步骤:
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UdpBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = UdpBroadcastReceiver.class.getSimpleName();
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals("android.intent.action.BOOT_COMPLETED")) {
// 开机后执行的操作
// ...
} else if (action.equals("your_custom_action")) {
// 接收到自定义广播时的操作
// ...
}
}
}
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.BOOT_COMPLETED"); // 开机广播
filter.addAction("your_custom_action"); // 自定义广播
context.registerReceiver(new UdpBroadcastReceiver(), filter);
InetAddress address = InetAddress.getByName("255.255.255.255"); // 广播地址
int port = 12345; // 广播端口
DatagramSocket socket = new DatagramSocket();
socket.setBroadcast(true);
String message = "Hello, broadcast!";
DatagramPacket packet = new DatagramPacket(message.getBytes(), message.length(), address, port);
socket.send(packet);
socket.close();
以上代码示例了如何在安卓中接收和发送UDP广播。确保你的应用程序添加了必要的权限,并按照上述步骤注册广播接收器,就能够成功接收UDP广播了。