Подтвердить что ты не робот

Программно запускать/запускать VPN-соединение

Я разрабатываю корпоративные приложения, которым необходимо подключиться к серверов за брандмауэром. Может ли мое приложение запускать VPN-соединение? программно?

На платформах 2.0+ VPN поддерживается платформой. Предполагая, что пользователь уже настроил параметры VPN, может ли мое приложение запустить VPN связь? Предположим, пользователь не настроил параметры VPN, может ли мое приложение поставлять эти параметры? и запустите VPN-соединение?

4b9b3361

Ответ 1

Мы столкнулись с этой проблемой в нашем магазине. На данный момент наш лучший снимок пытается использовать встроенный API для подключения к VPN так же, как это делает приложение настроек системы.

Сначала вам нужно настроить среду, которая позволяет вам получить доступ к внутреннему API: http://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-1-introduction/

Затем мы можем реализовать что-то вроде этого http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android-apps/4.4.4_r1/com/android/settings/vpn2/VpnSettings.java#258

Я не знаю, будут ли у нас какие-либо проблемы с разрешением, но IMHO это лучший вариант, который у нас есть сейчас.

EDIT: для этого нужны привилегии root, чтобы избежать ошибок java.lang.SecurityException: Unauthorized Caller.

Ответ 2

Предположим, пользователь не настроил параметры VPN, может ли мое приложение предоставить эти параметры? и запустите VPN-соединение?

да, я думаю, что возможно с классом VpnService, как в в этом примере

Предполагая, что пользователь уже настроил параметры VPN, может ли мое приложение запустить VPN-соединение?

Я тоже ищу его. Я не уверен, но я думаю, возможно, это можно сделать с помощью android.net.vpn. См. this