大佬教程收集整理的这篇文章主要介绍了DatagramSocket Receive 方法未在 Android TV 上的 UPnP/DLNA 发现中接收任何数据包,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
companion object {
private const val disCOVER_TIMEOUT = 1500
private const val liNE_END = "\r\n"
private const val DEFAulT_query = "M-SEARCH * http/1.1" + liNE_END +
"HOST: 239.255.255.250:1900" + liNE_END +
"MAN: \"ssdp:discover\"" + liNE_END +
"MX: 1" + liNE_END + //"ST: urn:scheR_126_11845@as-upnp-org:service:AVTransport:1" + liNE_END + // Use for Sonos
"ST: urn:scheR_126_11845@as-upnp-org:device:InternetGatewayDevice:1" + liNE_END + // Use for Routes
liNE_END
private const val DEFAult_address = "239.255.255.250"}
suspend fun startUPnPdiscovery() {
withContext(dispatchers.IO) {
val wifi =
context.applicationContext.getSystemservice(Context.WIFI_serviCE) as WifiManager
if (wifi != null) {
val lock = wifi.createMulticastLock("mylock")
lock.acquire()
var socket: DatagramSocket? = null
try {
val group = InetAddress.getByname("239.255.255.250")
val port = 1900
val query = customquery
socket = DatagramSocket(null)
socket.reuseAddress = true
socket.broadcast = true
socket.bind(InetSocketAddress(port))
val datagramPacketrequest =
DatagramPacket(query.toByteArray(),query.length,group,port)
socket.send(datagramPacketrequest)
while (true) {
val datagramPacket = DatagramPacket(ByteArray(1024),1024)
socket.receive(datagramPacket)
val response = String(datagramPacket.data,datagramPacket.length)
if (response.subString(0,12).toupperCase() == "http/1.1 200") {
val device = UPnPDevice(datagramPacket.address.hostAddress,responsE)
thReadCount++
getData(device.LOCATIOn,devicE)
break
}
}
} catch (e: IOException) {
e.printstacktrace()
Listener?.onError(E)
} finally {
socket?.close()
}
lock.release()
}
}
}
@H_403_4@您好,我正在尝试使用 AndroID TV 发现路由器。上面的代码在 AndroID 手机上运行良好,我能够获取路由器详细信息,但是在 AndroID TV 上运行时,我从未收到任何数据包。提前致谢
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的DatagramSocket Receive 方法未在 Android TV 上的 UPnP/DLNA 发现中接收任何数据包全部内容,希望文章能够帮你解决DatagramSocket Receive 方法未在 Android TV 上的 UPnP/DLNA 发现中接收任何数据包所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。