Android VPN:hexene LocalVPN服务在一段时间后无法正常工作

时间:2018-03-15 23:49:47

标签: android service vpn android-vpn-service

我对Android编程很陌生,基于这个GitHub repo:https://github.com/hexene/LocalVPN(所以在VpnService之上),我有一个针对Android VPN防火墙的小项目 - 排序的东西

问题是,原始仓库中没有对代码进行编辑,VPN会在一段时间后停止工作(通常在几秒钟后)。我的意思是互联网连接在所有应用程序中丢失,所以我猜数据包停止流经VPN。它随机发生,似乎没有触发事件。我再次从代码中编辑了0行。

到目前为止我尝试过的是

  • 按建议here使用startForeground()。什么都没有改变。
  • 有一个永久性的高优先级通知显示,以防止服务停止(虽然我不知道服务停止是否是原因。
  • 仅允许使用Builder.addAllowedApplication()在VPN中使用某些应用。如预期的那样,这并没有奏效。

任何人都有任何想法或智慧可以分享?非常感谢!

编辑:当互联网停止工作时,日志说:

03-16 00:52:18.904 13182-13260/xyz.hexene.localvpn E/TCPInput: Network read error: 172.217.23.67:443:42746
                                                           java.io.IOException: Connection reset by peer
                                                               at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
                                                               at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
                                                               at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
                                                               at sun.nio.ch.IOUtil.read(IOUtil.java:192)
                                                               at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:382)
                                                               at xyz.hexene.localvpn.TCPInput.processInput(TCPInput.java:133)
                                                               at xyz.hexene.localvpn.TCPInput.run(TCPInput.java:72)
                                                               at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
                                                               at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                               at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
                                                               at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
                                                               at java.lang.Thread.run(Thread.java:776)

0 个答案:

没有答案