Android vpn соединение программно - PullRequest
7 голосов
/ 24 октября 2011

Я пытаюсь запустить соединение 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));
    }

Этот метод прерывает работу и возвращает вышеуказанную ошибку.

Любая помощь / предложение по этому вопросу очень ценится.

Заранее спасибо.

1 Ответ

2 голосов
/ 10 апреля 2012

Первое предложение - проверьте разрешения в вашем манифесте.Там должно быть указано не менее android.permission.INTERNET.

...