VPN-сети Android могут объявлять HTTP-прокси
Используйте прямой ProxyInfo с VpnService.Builder в Android API 29 или новее и поймите, почему PAC URI там не работает.
В Android API 29 появился VpnService.Builder.setHttpProxy, позволяющий прикрепить рекомендацию HTTP-прокси к VPN-сети. В существующей службе VPN, перед установкой настроенного интерфейса:
builder.setHttpProxy(
ProxyInfo.buildDirectProxy("proxy.example", 8080));
Здесь builder — это VpnService.Builder службы, а ProxyInfo — android.net.ProxyInfo. Укажите хост и порт прокси по отдельности. Этот фрагмент добавляет сведения о прокси в builder, остальные параметры VPN которого уже настроены.
PAC-прокси не поддерживаются этим API. Создание ProxyInfo из PAC URI не превращает его в поддерживаемую конфигурацию VPN-прокси; используйте доступную прямую конечную точку HTTP-прокси. Для разрешённого публичного трафика список HTTP-прокси даёт кандидатов в хосты и порты, доступность которых нужно проверять с учётом схемы маршрутизации VPN.
Эта настройка носит рекомендательный характер. Приложения могут её игнорировать, поэтому она не гарантирует, что каждое соединение использует прокси. В разделённом туннеле приложения, следующие рекомендации, могут также пытаться отправлять HTTP-запросы к назначениям вне VPN через этот прокси. Такие приложения не различают две группы маршрутов при применении сведений о прокси. Проверьте доступность посредника в этой схеме маршрутизации, прежде чем считать настройку полной.