AltBeacon 阻止 HTTP 请求
AltBeacon blocking HTTP Requests
在我的应用程序中,我有两个服务。一个是
public AndroidUpnpService upnpService;
来自 Cling 库并扫描 WLAN 以查找其他 UPnP 设备。
我是这样绑定的
getApplicationContext().bindService(
new Intent(this, AndroidUpnpServiceImpl.class),
serviceConnection,
Context.BIND_AUTO_CREATE
);
一切正常。
只要我像这样绑定 BeaconManager
beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager.bind(this);
我的 UPnPService 不再能够检测到其他设备。
我只收到如下错误信息
W/StreamClient﹕ HTTP connection failed: (StreamRequestMessage) GET http://192.168.178.27:53447/upnp/dev/{some address}/desc
libcore.io.ErrnoException: isConnected failed: EHOSTUNREACH (No route to host)
at libcore.io.IoBridge.isConnected(IoBridge.java:208)
at libcore.io.IoBridge.connectErrno(IoBridge.java:161)
at libcore.io.IoBridge.connect(IoBridge.java:112)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
at java.net.Socket.connect(Socket.java:843)
at java.nio.SocketChannelImpl$SocketAdapter.connect(SocketChannelImpl.java:532)
at org.eclipse.jetty.client.SelectConnector.startConnection(SelectConnector.java:79)
at org.eclipse.jetty.client.HttpDestination.startNewConnection(HttpDestination.java:275)
at org.eclipse.jetty.client.HttpDestination.doSend(HttpDestination.java:566)
at org.eclipse.jetty.client.HttpDestination.send(HttpDestination.java:504)
at org.eclipse.jetty.client.HttpClient.send(HttpClient.java:165)
at org.fourthline.cling.transport.impl.jetty.StreamClientImpl.call(StreamClientImpl.java:114)
at org.fourthline.cling.transport.impl.jetty.StreamClientImpl.call(StreamClientImpl.java:108)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
是否有一种特定的方法我必须设置它才能在一个应用程序中同时获得这两个东西 运行?我已经尝试设置
beaconManager.setBackgroundScanPeriod(10000l);
所以它只每 10 秒扫描一次,这对我想做的事情来说完全没问题,但它仍然不起作用。
设置
beaconManager.setForegroundBetweenScanPeriod(10000l);
解决了这个问题。
setForegroundScanPeriod/setBackgroundScanPeriod 只是延长了扫描信标所需的时间。
在我的应用程序中,我有两个服务。一个是
public AndroidUpnpService upnpService;
来自 Cling 库并扫描 WLAN 以查找其他 UPnP 设备。
我是这样绑定的
getApplicationContext().bindService(
new Intent(this, AndroidUpnpServiceImpl.class),
serviceConnection,
Context.BIND_AUTO_CREATE
);
一切正常。
只要我像这样绑定 BeaconManager
beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager.bind(this);
我的 UPnPService 不再能够检测到其他设备。
我只收到如下错误信息
W/StreamClient﹕ HTTP connection failed: (StreamRequestMessage) GET http://192.168.178.27:53447/upnp/dev/{some address}/desc
libcore.io.ErrnoException: isConnected failed: EHOSTUNREACH (No route to host)
at libcore.io.IoBridge.isConnected(IoBridge.java:208)
at libcore.io.IoBridge.connectErrno(IoBridge.java:161)
at libcore.io.IoBridge.connect(IoBridge.java:112)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
at java.net.Socket.connect(Socket.java:843)
at java.nio.SocketChannelImpl$SocketAdapter.connect(SocketChannelImpl.java:532)
at org.eclipse.jetty.client.SelectConnector.startConnection(SelectConnector.java:79)
at org.eclipse.jetty.client.HttpDestination.startNewConnection(HttpDestination.java:275)
at org.eclipse.jetty.client.HttpDestination.doSend(HttpDestination.java:566)
at org.eclipse.jetty.client.HttpDestination.send(HttpDestination.java:504)
at org.eclipse.jetty.client.HttpClient.send(HttpClient.java:165)
at org.fourthline.cling.transport.impl.jetty.StreamClientImpl.call(StreamClientImpl.java:114)
at org.fourthline.cling.transport.impl.jetty.StreamClientImpl.call(StreamClientImpl.java:108)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
是否有一种特定的方法我必须设置它才能在一个应用程序中同时获得这两个东西 运行?我已经尝试设置
beaconManager.setBackgroundScanPeriod(10000l);
所以它只每 10 秒扫描一次,这对我想做的事情来说完全没问题,但它仍然不起作用。
设置
beaconManager.setForegroundBetweenScanPeriod(10000l);
解决了这个问题。
setForegroundScanPeriod/setBackgroundScanPeriod 只是延长了扫描信标所需的时间。