Android 127.0.0.1(环回)连接:适用于WiFi,无法使用3G / 4G

时间:2015-05-30 11:38:33

标签: android networking mobile-webkit loopback 3g-network

我的应用程序嵌入了一个本地http服务器,可以通过URL上的环回设备访问:http://127.0.0.1:8080/

在启用WiFi的情况下工作正常,没有外部网络(没有WiFi,没有3G)也能很好地工作但是当WiFi被禁用并启用3G时它会失败。

通过adb shell连接并执行“netcfg”我可以看到环回设备始终处于启用状态:

shell@android:/ $ netcfg
...
lo       UP               127.0.0.1/8   0x00000049 00:00:00:00:00:00
...

Alos“ping 127.0.0.1”在打开/关闭WiFi或3G时继续工作。

有什么想法吗?

更新: 添加到拼图。从我的开发计算机我转发tcp端口:

$ adb forward tcp:8080 tcp:8080

然后我尝试使用http://127.0.0.1:8080/从我的电脑连接。它可以工作,但是当使用在Android设备上运行的浏览器时它仍然会失败。

更新2015-06-01: 在使用3G时,我在adb logcat上看到很多相关的错误,类似于:

W/ContextImpl(  504): Calling a method in the system process without a qualified user: android.app.ContextImpl.sendStickyBroadcast:1239 com.android.server.TelephonyRegistry$3.onReceive:818 android.app.LoadedApk$ReceiverDispatcher$Args.run:788 android.os.Handler.handleCallback:725 android.os.Handler.dispatchMessage:92

E/CellLocation( 8336): create GsmCellLocation

触发Gsm活动连接到环回设备对我没有任何意义。

更新2015-06-01(2): 我设法安装了wget     /data/data/com.XXXX.yyy/files/appFiles/bin

然后我通过“adb shell”连接 - > “run-as com.XXXX.yyy”并最终执行:     wget -O - “http://127.0.0.1:8080/

我工作正常,所以我可以放弃任何禁用localhost上的环回访问的奇怪的安全设置,所以我想这与WebView / WebViewClient试图错误地使用3G外部代理访问环回有关。现在我想知道是否可以在WebView上禁用代理。

1 个答案:

答案 0 :(得分:1)

最后,它看起来是WebView尝试访问外部代理甚至是回溯界面的问题。我按照提议的解决方案修复了问题:WebView android proxy