- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在为 network service discovery 使用 WiFi P2P ,并且我正在按照开发人员指南中概述的说明进行操作。这是我的服务类中的相关代码:
public void onCreate() {
manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
channel = manager.initialize(this, getMainLooper(), null);
registerP2pService();
lookForServices();
}
private void registerP2pService() {
WifiP2pDnsSdServiceInfo serviceInfo =
WifiP2pDnsSdServiceInfo.newInstance("_service.name", "_presence._tcp", new HashMap<String, String>());
manager.addLocalService(channel, serviceInfo, new WifiP2pManager.ActionListener() {
@Override
public void onSuccess() {
Log.i("tag", "REGISTERED SERVICE");
}
@Override
public void onFailure(int arg0) {
Log.e("tag", "FAILED to register service");
}
});
}
private void setServiceListeners() {
WifiP2pDnsSdServiceRequest serviceRequest = WifiP2pDnsSdServiceRequest.newInstance();
manager.addServiceRequest(channel, serviceRequest,
new WifiP2pManager.ActionListener() {
@Override
public void onSuccess() {
Log.d("SCOPE", "Added a service request.");
discoverServices();
}
@Override
public void onFailure(int code) {
Log.e("tag", "Error adding service request.");
}
});
}
public void discoverServices() {
manager.discoverServices(channel, new WifiP2pManager.ActionListener() {
@Override
public void onSuccess() {
Log.d("tag", "Service discovery was initiated");
}
@Override
public void onFailure(int code) {
// This is where it keeps failing with error code 3 (NO_SERVICE_REQUESTS)
Log.d("SCOPE", "Service discovery failure code " + code);
}
});
}
我在重启手机后第一次运行我的服务时,服务发现启动得很好,但如果我通过从应用程序设置页面停止它来终止服务,然后再次打开它,它总是失败并显示错误代码 3。如果我重新启动手机并再次运行该应用程序,它就可以正常工作。我很困惑,因为我仅在成功添加服务请求时才显式调用 discoverServices。
我的直觉是,这可能是由于某些与服务发现无关的代码造成的,因为服务发现代码看起来非常简单,但如果您发现我发布的内容有任何问题,请告诉我。我在这里捕获救命稻草。
我在装有 Android 4.4.2 的 Nexus 5 上运行它。
最佳答案
我在第二代 Nexus 7 上遇到了同样的问题。第一次运行良好,随后的尝试就出错了。具体来说,addServiceRequest
操作监听器报告成功,但随后 discoverServices
报告 NO_SERVICE_REQUESTS。
(拆解 removeLocalService
和 removeServiceRequest
在首次成功使用后退出应用程序之前成功。)
虽然这不是一个理想的答案,但将 wifi 关闭然后再次打开似乎可以重置任何卡住的东西。这可以通过编程方式完成。
关于android - WiFiDirect discoverServices 不断失败并出现错误 3 (NO_SERVICE_REQUESTS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21816730/
如果这不是一个错误,那就是另一个错误。如果不是那样的话,那就是别的东西了。我觉得我的项目已经改变了很多,现在只是试图解决代码签名问题,结果一切都搞砸了。我严格按照说明进行操作,但出现错误,例如当前的“
我不确定是否有一些我不知道的内置变量或规则,或者 make 是否有问题,或者我只是疯了。 对于我的一个项目,我有一个如下的 makefile: CC=g++ CFLAGS=-O3 `libpng-co
我有大约 10 个 div,它们必须不断翻转,每个 div 延迟 3 秒 这个 codrops 链接的最后一个效果是我正在寻找的,但无需单击 div http://tympanus.net/Devel
我如何使用 jQuery 持续运行 PHP 脚本并每秒获取响应,以及将鼠标上的少量数据发送到同一脚本? 我真的必须添加一些随机扩展才能让这么简单的计时器工作吗? 最佳答案 To iterate is
JBoss 4.x EJB 3.0 我见过如下代码(大大简化): @Stateless @TransactionAttribute(TransactionAttributeType.NOT_SUPPO
使用 PHPStorm,我试图忽略每次尝试进行 git 提交时 pop 的 workspace.xml。 我的 .gitignore 看起来像: /.idea/ .idea/workspace.xml
我是一名优秀的程序员,十分优秀!