简单的 UDP 广播不适用于 Android Wear [英] Simple UDP Broadcast not working on Android Wear
问题描述
我只想让我的 UDP 广播正常工作:
All I want is my UDP broadcast to work:
@Override
protected String doInBackground(String[] params) {
try {
DatagramSocket datagramSocket = new DatagramSocket();
datagramSocket.setBroadcast(true);
byte[] buffer = "test".getBytes();
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, InetAddress.getByName("192.168.0.255"), 8899);
datagramSocket.send(packet);
System.out.println("Package sent.");
System.out.println("Data: " + buffer);
System.out.println("Broadcast address: " + this.broadcastAddress);
System.out.println("--------------------------");
} catch (Exception e) {
System.out.println("Package not sent: " + e.getMessage());
e.printStackTrace();
}
return "complete";
}
此代码通过按钮在 onClick 事件上执行,并且位于 AsyncTask 中.
This code gets executed on an onClick event by a button and is inside an AsyncTask.
2次点击的日志是:
System.out﹕ Package sent.
System.out﹕ Data: [B@3b9b0914
System.out﹕ Broadcast address: /192.168.0.255
System.out﹕ --------------------------
System.out﹕ Package sent.
System.out﹕ Data: [B@3090d7b2
System.out﹕ Broadcast address: /192.168.0.255
System.out﹕ --------------------------
所以看起来它正在工作.但不是因为我无法用 Wireshark 捕获它.
So it looks like it's working. But it's not since I can't catch it with Wireshark.
我尝试过在手机上使用 UDP 包发送器,效果很好.
What I've tried is using an UDP package sender on my phone, and that works.
也许是因为我不能在我的手表上发送这样的 UDP 包?有人知道要搜索什么吗?
Maybe it's because I can't send UDP packages like this on my watch? Does anyone have an idea on what to search for?
推荐答案
您是对的:Android Wear 设备本身无法访问互联网:您的手机应用需要处理所有互联网连接并将结果转发到您的 Wearable 应用通过穿戴数据层
You are correct: Android Wear devices do not have access to the internet themselves: your phone app needs to handle all internet connections and forward the results to your Wearable app via the Wear Data Layer
这篇关于简单的 UDP 广播不适用于 Android Wear的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!