我使用root
方法创建一个服务WakefulBroadcastReceiver
用于某些测试目的(请注意,我刚刚使用Activity启动服务器测试,同样的事情发生):
MyService.java
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(TAG, "Server starting");
// Create the server
server = new WebServer(6666);
new Thread(new Runnable() {
@Override
public void run() {
try {
server.start();
} catch (IOException e) {
Log.d(TAG, e.getMessage());
}
}
}).start();
...
return START_STICKY;
}
WebServer.java:
public class WebServer extends NanoHTTPD {
@Override
public Response serve(IHTTPSession session) {
Log.d(TAG, "Serving");
return new NanoHTTPD.Response("<html><body>test</body></html>");
}
我{/ 1}}在/ system / app中使用push
APK,因此无需先使用活动即可调用服务。然后重启shell。
我可以看到服务器的日志等待连接,然后:
adb
使用wget http://127.0.0.1:6666
我可以看到日志&#34;服务&#34;。adb shell
),则服务器尚未到达。我使用API18和默认的Nexus7 AVD(也尝试使用localhost
和三星平板电脑)但没有任何作用。在网络设置中没有配置代理。
我不明白为什么浏览器(在设备上)无法到达Genymotion
上的6666
端口(也在设备上)
这是清单:
127.0.0.1
答案 0 :(得分:1)
我疯了,最后有人发给我这个链接: https://superuser.com/questions/188058/which-ports-are-considered-unsafe-on-chrome
端口6666被认为是不安全的...我希望它会写在页面上而不是无法到达服务器。