以编程方式在Android上建立VPN连接

7

我正在尝试以编程方式启动VPN连接。我遇到了这个错误。我使用的是Android 2.1,我的测试手机内核版本为2.6.32.9。 当我手动连接时,我能够连接到VPN。但是编程方式连接时,我遇到了这个错误。

java.io.IOException: cannot start service: mtpd
E/VpnService(11817):    at com.android.vpn.DaemonProxy.start(DaemonProxy.java:75)
E/VpnService(11817):    at com.android.vpn.VpnDaemons.startDaemon(VpnDaemons.java:106)
E/VpnService(11817):    at com.android.vpn.VpnDaemons.startMtpd(VpnDaemons.java:127)
E/VpnService(11817):    at com.android.vpn.VpnDaemons.startL2tp(VpnDaemons.java:50)
E/VpnService(11817):    at com.android.vpn.L2tpService.connect(L2tpService.java:31)
E/VpnService(11817):    at com.android.vpn.VpnService.onConnect(VpnService.java:135)
E/VpnService(11817):    at com.android.vpn.VpnServiceBinder$2.run(VpnServiceBinder.java:130)
E/VpnService(11817):    at java.lang.Thread.run(Thread.java:1096)

DeamonProxy:以下方法得分为75分。
private boolean blockUntil(String expectedState, int waitTime) {
        String cmd = SVC_STATE_CMD_PREFIX + mName;
        int sleepTime = 200; // ms
        int n = waitTime * 1000 / sleepTime;
        for (int i = 0; i < n; i++) {
            if (expectedState.equals(SystemProperties.get(cmd))) {
                if (DBG) {
                    Log.d(mTag, mName + " is " + expectedState + " after "
                            + (i * sleepTime) + " msec");
                }
                break;
            }
            sleep(sleepTime);
        }
        return expectedState.equals(SystemProperties.get(cmd));
    }

这个方法已超时并返回以上错误。
非常感谢您的任何帮助/建议。
提前致谢。

嗨,我只是路过问一下 - 你能解决这个问题吗?我也遇到了同样的问题,正在寻找解决方案。 - Mahendra Liya
你能发一下代码吗?我也在尝试做同样的事情。 - TharakaNirmana
1个回答

2

第一个建议 - 检查您的清单文件中的权限。至少应列出android.permission.INTERNET


1
这应该是一个注释 - Houcine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接