Articles of 网络

Android,NSD / DNS-SD:NsdManager不可靠的发现和IP解析

在过去的几周里,Android的NSD实现让我发疯: 从用户的角度来看,出现以下问题: 设备以完全不确定的方式发现彼此。 如果我启动基于NsdManager的应用程序,如果只涉及两个设备,它会或多或少地起作用。 如果第三个设备加入,它将很少发现前两个 ,前两个将不会看到第三个。 如果我退出应用程序(它们优雅地取消注册NSD侦听器)并以不同的顺序重新启动它们,则发现模式不完全相同,但类似。 在我的家庭网络中,已发现设备的IP分辨率基本上按预期工作。 在工作中,有时即使仅使用两个设备(A和B), 设备A也将使用A的IP地址和B的端口解析设备B的服务,反之亦然。 因此,某种程度上IP地址和服务名称似乎在较低级别(可能是NsdManager)混淆。 我现在已经为此提交了有关Google代码的错误报告( https://code.google.com/p/android/issues/detail?id=201314&thanks=201314&ts=1455814995 )。 我也在这里发帖,希望得到更多反馈; 也许我的Nsd助手类错了。 首先,在无休止的调试之后,我现在在logcat中发现了Android的底层NsdService本身可能出现故障的提示,而MDnsDS似乎正常工作。 但我不确定…… 这是一些日志输出,用于说明问题(为了便于阅读,已过滤了一些消息): 02-18 16:57:02.327: D/NsdService(628): startMDnsDaemon 02-18 16:57:02.327: D/MDnsDS(187): Starting MDNSD 02-18 16:57:02.529: D/NsdService(628): New client listening to asynchronous messages 02-18 16:57:02.529: D/NsdService(628): New client, channel: com.android.internal.util.AsyncChannel@1fa188ce messenger: android.os.Messenger@cca33ef 02-18 16:57:02.532: D/NsdService(628): Register service 02-18 16:57:02.532: D/NsdService(628): registerService: […]

如何限制Android设备网络速度以进行测试

我正在测试一个Android应用程序,它在低质量网络上管理其内容时遇到了一些问题。 我无法validation问题是否仍然存在,因为我家中的网络速度(120mb / s),在我设法启动再现路由之前,所有内容都已经下载。 在这种情况下,使用Android模拟器不是一个选项,因为再现路径需要非常快速的操作来显示问题。 我知道iOS具有允许用户限制网络状况的function,但我无法find适合Android的类似工具。 TL; DR 有没有办法在实际的Android设备上模拟糟糕的网络状况?

如何从特定的Android应用程序捕获网络流量。

我读过一篇论文,提出了一种捕获来自特定Android应用程序的网络流量的方法。它说“我们使用tcpdump来收集来自虚拟机的所有网络流量。我们将strace实用程序移植到Android以记录执行的每个网络系统调用通过app.We使用应用程序的进程ID(pid)识别应用程序启动的所有线程。根据此线程信息,我们可以过滤掉不是来自应用程序的流量“。 但我仍然不知道操作原理。那么如何从特定的Android应用程序中捕获网络流量呢?感谢您的回答。

Android Studio下载每次都会取消

每当我尝试下载适用于Linux的android studio时,当剩下最后一秒时它会显示网络错误。 我尝试了5次,同样的事情发生了。 在最后一秒,下载取消,并显示“未知网络错误”。 我试过在Windows和Ubuntu上下载,但结果是一样的。 我能够毫无问题地下载Android的Android工作室。

Android:如何监控WiFi信号强度

当信号强度发生变化时,我会收到通知。 我尝试创建以下方法并在onCreate()中调用它: private void initializeWiFiListener(){ Log.i(TAG, “executing initializeWiFiListener”); String connectivity_context = Context.WIFI_SERVICE; final WifiManager wifi = (WifiManager)getSystemService(connectivity_context); if(!wifi.isWifiEnabled()){ if(wifi.getWifiState() != WifiManager.WIFI_STATE_ENABLING){ wifi.setWifiEnabled(true); } } registerReceiver(new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent) { WifiInfo info = wifi.getConnectionInfo(); //TODO: implement methods for action handling } }, new IntentFilter(WifiManager.RSSI_CHANGED_ACTION)); } 如果有人能检查方法是否写得正确,我将不胜感激。 我试图运行应用程序,但没有收到任何通知,我不确定是否因为信号强度在我运行调试的地方可能是不变的,或者是因为缺少某些东西。 谢谢!

以编程方式获取wifi /移动网络的数据速度

如何在我的应用程序中以编程方式获取wifi /移动网络的数据速度。 提前致谢!

如何在我的Windows桌面上运行localhost的移动设备上运行我的Angular站点

我知道从这个问题和在桌面上的localhost上运行的超级用户站点上的答案在Android设备上无法访问 ( PS:这个问题在链接中的问题上继续) ,命令ng serve打开一个错误配置的网络服务器。 问题是如何在不部署我的网站的情况下在Android设备上运行我的网站。 我将尝试使用Angular-CLI在此URL http://192.168.0.168:4200上运行该站点。

Android获取热点提供设备的IP地址

我正在使用 public static String getLocalIPAddress(WifiManager wm){ return Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress()); } 获取执行设备的IP地址。 如果设备连接到“公共”wlan网络,并且设备连接到由其他Android设备通过热点托管的wifi网络,则工作正常。 如果设备未连接到任何wifi网络,则返回“0.0.0.0”(正确)。 但是如果设备通过提供热点来托管wifi网络,则该方法仍然返回“0.0.0.0”。 如何在“自己的wifi网络”中获取热点提供设备的真实IP地址? 感谢和问候

通过手机将Android连接到本地Lan(通过wifi或通过USB连接)

我正在玩Android中的RTSP,使用Media Player进行流式传输。 现在我想在本地测试它们,但发现它非常困难。 我所做的是运行本地Wowza服务器并发布RTSP URL,然后我将该URL输入到android api demos MediaPlayerDemo.java中。 但是,因为它无法在模拟器上运行,我必须在手机上调试它(HTC Hero 1.5)但是我无法让我的Hero看到我的网络。 当然我不能使用10.0.2.2因为那是模拟器。 我还使用了我的计算机的IP地址和网络上的其他计算机,但也没有。 如何让我的Hero看到我的网络,以便我可以测试RTSP流媒体? 我尝试通过USB连接,也连接到我的wifi路由器,但都没有工作。 关心Anthoni

Android:在Android设备上检查3G或Wifi网络是否开启或可用

如何以编程方式在Android设备上检查该网络是否可用,当我们尝试连接Wifi和3G等网络时,它会抛出消息或Toast消息。