问题标签 [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.

0 投票
1 回答
3039 浏览

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

0 投票
0 回答
268 浏览

android - 禁用 Wifi 时未收到 NSD 设备丢失消息

我已经按照此处NSD的说明编写了一个示例应用程序。

该应用程序运行良好,它会发现服务、解析服务并在服务未注册时报告服务丢失。

但是在这样的用户场景中:

  1. 如果NSD应用程序在名为的设备上运行A并已注册服务A
  2. 而其他一些名为B,C的设备D正在侦听此服务。
  3. 服务由B, C, D- 预期行为发现
  4. 现在wifi是关闭一个设备A
  5. 我希望在设备B, C,上收到服务丢失消息D,但我没有收到?

如果我不关闭wifiA而只是关闭取消注册正在运行的服务的应用程序,我会在设备上NSD收到服务丢失消息,,,。BCD

这可能是什么原因?这是一个已知的错误NSD吗?或者这就是NSD行为方式?

0 投票
2 回答
2054 浏览

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 将修改服务名称以创建唯一实例。我的问题是:

  1. 如果广告服务不再存在,则删除它们的预期超时是多少?
  2. 当我推送我的应用程序的新实例时,有没有办法确保我onDestroy被调用?这种情况是否类似于用户安装我的应用程序更新时可能遇到的情况?即onDestroy当正在运行的应用程序关闭时保证会被调用,以便可以安装该应用程序的新版本?
  3. 我的应用程序中是否有办法检测旧注册并将其删除?
0 投票
2 回答
8035 浏览

android - Android - jmdns 没有发现设备

我正在尝试实现一个类来发现网络上的服务。我尝试过使用Android 的 NSD,它确实发现服务很好,但它只支持 API 级别 16 及更高级别,而且我似乎无法检索服务信息中的 txtRecord 字段(由于某种原因它返回 null)。原来这是一个已知问题...

所以现在我正在尝试使用jmDNS,它似乎根本找不到服务。这是我的课程(我正在使用 AndroidAnnotations 框架)MDnsHelper:

在我的应用程序中,我调用:

然后startDiscovery();开始扫描和stopDiscovery();停止扫描。

当然,我在清单中给了应用程序所需的权限......我在这里错过了什么?如果您需要我提供其他代码/信息 - 请询问。谢谢!!

0 投票
1 回答
1035 浏览

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 设备上尝试过吗?

编辑:在英特尔模拟器上相同。

0 投票
0 回答
751 浏览

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 代码来发现这样的域上的本地网络服务呢?

0 投票
2 回答
4774 浏览

android - NsdManager 不会停止服务发现

Android我目前正在开发的应用程序中,我想使用NsdManager.

我设法运行网络服务发现并连接到所需的网络,但停止发现NsdManager线程后仍在运行。这会导致在几次屏幕旋转后有许多NsdManager线程正在浏览连接。

在此处输入图像描述

当任何网络可用时,设备会尝试多次同步,因此每个网络NsdManager仍然处于活动状态,尽管停止了服务发现。

贝娄是我的代码:

主要是Activity

我该如何解决这个问题?

0 投票
1 回答
601 浏览

android - NSDs 服务未正确注销

有点问题的背景。我正在制作一个使用网络服务发现来广播服务的多人游戏。虽然我既不是 java 也不是 android 的初学者,但我是使用 Wi-Fi 连接设备的技术的初学者。因此,在我的应用程序中,我有一个活动,用户提供进入房间或​​创建一个房间。当用户点击“创建房间”时,我首先检查是否有已经注册的服务。如果存在,我取消注册它并注册一个新的,我还将这些操作的结果写入调试日志。这是一个方法的代码,在“创建房间”按钮的 onClick() 方法中调用:

tearDown() 方法代码:

问题是:正如我从日志中看到的那样,该服务已成功取消注册,并且在它之后系统告诉我发现了相同的服务,所以现在我有两个服务:新创建的和旧的。以下是日志:

用户按下“创建房间”:

用户按下返回按钮:

用户再次按下“创建房间”:

我们可以看到找到了 2 个服务而不是一个,这意味着第一个服务没有正确取消注册。

谢谢大家!

0 投票
2 回答
704 浏览

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 和协议,然后代码中出现很多错误。这是正常的吗?这是导致崩溃的原因吗?

0 投票
1 回答
122 浏览

android - 连接安卓设备

我想知道是否有什么方法可以将几部Android手机连接在一起?例如,一部手机充当主机,其余的连接到它?

我打算制作一个游戏,但我需要这样的连接(没有互联网连接)。

谢谢你。