问题标签 [android-nsd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Nsd Manager Android Crashing on 4.2.2
Discovering services results in a system crash. The type of discover I am trying is
"_http._tcp."
Here's the log.
The code that I use for starting discovery is
When I run, my phone restarts everytime. I guess this is a bug on Android 4.2.2
android - 禁用 Wifi 时未收到 NSD 设备丢失消息
我已经按照此处NSD
的说明编写了一个示例应用程序。
该应用程序运行良好,它会发现服务、解析服务并在服务未注册时报告服务丢失。
但是在这样的用户场景中:
- 如果
NSD
应用程序在名为的设备上运行A
并已注册服务A
- 而其他一些名为
B
,C
的设备D
正在侦听此服务。 - 服务由
B
,C
,D
- 预期行为发现 - 现在
wifi
是关闭一个设备A
。 - 我希望在设备
B
,C
,上收到服务丢失消息D
,但我没有收到?
如果我不关闭wifi
,A
而只是关闭取消注册正在运行的服务的应用程序,我会在设备上NSD
收到服务丢失消息,,,。B
C
D
这可能是什么原因?这是一个已知的错误NSD
吗?或者这就是NSD
行为方式?
android - Android网络服务发现“超时”?
我在 Android 上使用网络服务发现 (NSD) 来宣传设备上的 REST 服务器。我的 REST 服务器包装在android.app.Service的一个实例中。
在中onCreate
,我成功启动了 REST 服务器并注册了我的 NSD 服务。我可以在我的网络中的其他设备上看到 NSD 服务名称(例如My Service)。
在我onDestroy
的 REST 服务器中,我停止了 NSD 服务的注册。
但是,似乎在开发过程中,当我推送我的应用程序的新实例(通过 Eclipse)时,并不能保证onDestroy
会调用该服务。这意味着My Service仍然是广告,并且下次服务启动时,我以My Service (1)、My Service (2)等结束。
我了解 NSD 将修改服务名称以创建唯一实例。我的问题是:
- 如果广告服务不再存在,则删除它们的预期超时是多少?
- 当我推送我的应用程序的新实例时,有没有办法确保我
onDestroy
被调用?这种情况是否类似于用户安装我的应用程序更新时可能遇到的情况?即onDestroy
当正在运行的应用程序关闭时保证会被调用,以便可以安装该应用程序的新版本? - 我的应用程序中是否有办法检测旧注册并将其删除?
android - Android - jmdns 没有发现设备
我正在尝试实现一个类来发现网络上的服务。我尝试过使用Android 的 NSD,它确实发现服务很好,但它只支持 API 级别 16 及更高级别,而且我似乎无法检索服务信息中的 txtRecord 字段(由于某种原因它返回 null)。原来这是一个已知问题...
所以现在我正在尝试使用jmDNS,它似乎根本找不到服务。这是我的课程(我正在使用 AndroidAnnotations 框架)MDnsHelper:
在我的应用程序中,我调用:
然后startDiscovery();
开始扫描和stopDiscovery();
停止扫描。
当然,我在清单中给了应用程序所需的权限......我在这里错过了什么?如果您需要我提供其他代码/信息 - 请询问。谢谢!!
android - getSystemService(Context.NSD_SERVICE) 冻结 5.0 模拟器
尝试执行以下行
在 Android 5.0 模拟器(ARMv7a,在 Win64 上)中会冻结模拟器。调试器永远不会到达下一行,模拟器不响应按钮,只能关闭。
从后台线程和主线程都尝试过。上下文是一个活动。
清单中的权限包括:
- android.permission.INTERNET
- android.permission.ACCESS_WIFI_STATE
- android.permission.CHANGE_WIFI_STATE
- android.permission.CHANGE_WIFI_MULTICAST_STATE
同一行在 4.4 模拟器和 4.1 设备上按预期工作。请问5.0有什么不同和/或线路有什么问题?有人在 5.0 设备上尝试过吗?
编辑:在英特尔模拟器上相同。
android - 如何在 Android 中的 .local 域以外的域上发现网络服务?
我想使用 Android 网络服务发现 (NSD) 功能来发现在本地域上发布的一些本地网络服务。我在 Android 网站上阅读了有关 Android NSD的官方文档。我可以毫无问题地找到在 .local 域上发布的网络服务。但是我有一些其他网络服务不是直接在 .local 域上发布的,而是在 .local 等域上发布的mydevice.mycompany.local
。在 Android NSD API 示例中,有一个函数用于发现具有给定服务类型(“_http._tcp.”)、协议和侦听器的服务:
默认情况下,这只会发现.local
域上的网络服务,而不是像我这样的其他本地域mydevice.mycompany.local
。但是,我在 Android 上安装了 Bonjour 应用程序,它可以找到其他域服务。所以我认为有一种方法可以通过代码获得这些网络服务。
我浏览了 Android NSD API,但没有找到让我指定要从中发现服务的域名的选项。那么如何使用 Android NSD 代码来发现这样的域上的本地网络服务呢?
android - NsdManager 不会停止服务发现
在Android
我目前正在开发的应用程序中,我想使用NsdManager
.
我设法运行网络服务发现并连接到所需的网络,但停止发现NsdManager
线程后仍在运行。这会导致在几次屏幕旋转后有许多NsdManager
线程正在浏览连接。
当任何网络可用时,设备会尝试多次同步,因此每个网络NsdManager
仍然处于活动状态,尽管停止了服务发现。
贝娄是我的代码:
主要是Activity
:
我该如何解决这个问题?
android - NSDs 服务未正确注销
有点问题的背景。我正在制作一个使用网络服务发现来广播服务的多人游戏。虽然我既不是 java 也不是 android 的初学者,但我是使用 Wi-Fi 连接设备的技术的初学者。因此,在我的应用程序中,我有一个活动,用户提供进入房间或创建一个房间。当用户点击“创建房间”时,我首先检查是否有已经注册的服务。如果存在,我取消注册它并注册一个新的,我还将这些操作的结果写入调试日志。这是一个方法的代码,在“创建房间”按钮的 onClick() 方法中调用:
tearDown() 方法代码:
问题是:正如我从日志中看到的那样,该服务已成功取消注册,并且在它之后系统告诉我发现了相同的服务,所以现在我有两个服务:新创建的和旧的。以下是日志:
用户按下“创建房间”:
用户按下返回按钮:
用户再次按下“创建房间”:
我们可以看到找到了 2 个服务而不是一个,这意味着第一个服务没有正确取消注册。
谢谢大家!
java - 发现按钮 IllegalStateException:无法执行活动的方法
链接到 3 个 java 文件: https ://www.dropbox.com/s/f57xwvm3gu9eubm/macnetworknotify.rar?dl=0
我正在尝试执行在http://developer.android.com/training/connect-devices-wireless/nsd.html#discover关于 NSD 的这个应用程序示例。当我执行它时,它说当我单击“发现”按钮时它无法执行活动的方法。所有其他按钮都没有问题。
我认为一些代码可能有助于解决问题,我真的不知道或找不到问题。
activity_main.xml
MainActivity.java
NsdHelper.java
而且,当我打开发现服务和 NsdManager 所在的 NsdManager.java 时,我看到很多错误,从导入开始说无法解析 SdkConstant 和 AsyncChannel 和协议,然后代码中出现很多错误。这是正常的吗?这是导致崩溃的原因吗?
android - 连接安卓设备
我想知道是否有什么方法可以将几部Android手机连接在一起?例如,一部手机充当主机,其余的连接到它?
我打算制作一个游戏,但我需要这样的连接(没有互联网连接)。
谢谢你。