Способ передачи имени пользователя и пароля в VpnService.Builder
Я разрабатываю приложение, в котором я хочу использовать VPN-сеть. для создания VPN-сети в устройстве нам необходимо настроить его из (настроек-беспроводных и сетевых-VPN-настроек) меню устройства.
Я хочу сделать это много настроек с помощью кода с жестко закодированной информацией.
Начиная с уровня API 4.0, Android поддерживает API для обслуживания служб VPN.
Чтобы узнать о реализации этих методов, я использовал пример проекта Android ToyVPN. Но в этом много методов я не нашел способа передать имя пользователя и пароль. информация, которую я должен подключить к сети VPN.
- Имя VPN-сервера
- Имя пользователя
- Пароль
Используя эту три информации, я успешно подключаюсь к сети VPN, если я настраиваю вручную с устройства. Но я хочу сделать это программно. Вот файл класса, который используется для подключения к сети VPN. ToyVpnClient.java и ToyVpnService.java. в дополнение к этому образцу приложения происходит сбой в устройстве.
Любая помощь будет оценена.
Ответы
Ответ 1
VpnService, о котором вы говорите, не то, что вы думаете. Это всего лишь основа для создания собственного VPN-решения. После того, как вы установили, вы получите всю связь на сетевом уровне (IP), и вы сможете делать с ней все, что хотите, например, зашифровать его и отправить на свой сервер - примером для этого является проект ToyVpn, найденный в /samples/android -14/. Вам также нужен собственный код на стороне сервера, чтобы выполнить дешифрование и необходимую маршрутизацию трафика.
К сожалению, вы не можете программно настроить встроенный андроид VPN. Лучшее, что вы можете сделать, это показать диалог пользователю, объясняющий, как его установить, а затем отобразить системные настройки с правильным отображением экрана.
Ответ 2
Возможно использование внутреннего android.jar(com.android.internal) и скрытого (@hide) API. См. Ссылку ниже:
Как программно создать новый VPN-интерфейс с Android 4.0?