Программно запускать/запускать VPN-соединение
Я разрабатываю корпоративные приложения, которым необходимо подключиться к
серверов за брандмауэром. Может ли мое приложение запускать VPN-соединение?
программно?
На платформах 2.0+ VPN поддерживается платформой. Предполагая, что пользователь
уже настроил параметры VPN, может ли мое приложение запустить VPN
связь? Предположим, пользователь не настроил параметры VPN, может ли мое приложение
поставлять эти параметры? и запустите VPN-соединение?
Ответы
Ответ 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
Ответ 3
AnyConnect от Cisco имеет частный API: http://www.cisco.com/c/en/us/td/docs/security/vpn_client/anyconnect/anyconnect30/administration/guide/anyconnectadmin30/acmobiledevices.html#71308
Ответ 4
Да, вы можете запустить VPN-соединение. Какую версию Android вы используете? эта ссылка должна быть полезной. дайте подробности для лучшего понимания.