以编程方式连接android vpn

标签 android vpn

我正在尝试以编程方式启动 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));
    }

该方法超时并返回上述错误。

非常感谢对此的任何帮助/建议。

提前致谢。

最佳答案

第一个建议 - 检查 list 中的权限。至少应在此处列出 android.permission.INTERNET

关于以编程方式连接android vpn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7880167/

相关文章:

android - 同一个服务器代码能否同时向 APNS 和 GCM 发送通知

kubernetes - 用于访问集群服务/Pod 的 VPN : cannot ping anything except openvpn server

docker - 使用 Cisco VPN AnyConnect 时无法让 docker-machine 与 virtualbox 一起使用

windows - 需要自动化从 Linux 到 Windows 的 PPTP 连接

linux - 到 VPN 的下一跳静态路由获取 "Network is unreachable'

android - 无法从自己的网页下载和安装应用程序 APK

Android Volley : POST request - req. NodeJS REST API 内部为空

android - 错误 :Cause: invalid stream header: 000900D9 in android studio 2. 3.1

php - 使用 OkHttp 和 PHP 将文件从 Android 上传到服务器

linux - 将并发客户端桥接到单个连接的代理