作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想了解 android 支持的“服务发现”机制 - 特别是打印机发现。
android 是否提供这样的发现选项?示例:是否支持 snmp 广播?
我尝试了一个应用程序“PrinterShare”链接:http://www.printeranywhere.com/mobile.sdf其中 Printer Discovery 是通过 ipp 实现的。
感谢任何帮助。
最佳答案
Roy,我遇到了和你一样的问题,甚至在实际设备上运行该代码 fragment 时出现了相同的行为(独立运行代码,而不是在 android 中,运行良好)。我找到了 this page并通过使用以下内容计算出广播 IP(而不是 239.255.255.250)使其正常工作,尽管仅在设备上:
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);
}
希望对您有所帮助:)
关于android - 如何在android上实现类似 "Printer Discover"的服务发现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3914191/
我是一名优秀的程序员,十分优秀!