Redes VPN do Android podem anunciar um proxy HTTP
Use um ProxyInfo direto com VpnService.Builder no Android API 29 ou posterior e entenda por que um URI PAC não funciona ali.
O Android API 29 introduziu VpnService.Builder.setHttpProxy para anexar uma recomendação de proxy HTTP a uma rede VPN. Num serviço VPN existente, antes de estabelecer a sua interface configurada:
builder.setHttpProxy(
ProxyInfo.buildDirectProxy("proxy.example", 8080));
Aqui builder é o VpnService.Builder do serviço e ProxyInfo é android.net.ProxyInfo. Indique o host e a porta do proxy separadamente. Este fragmento adiciona as informações do proxy a um builder cujos outros parâmetros VPN já estão configurados.
Os proxies PAC não são suportados por esta API. Criar um ProxyInfo a partir de um URI PAC não o transforma numa configuração de proxy VPN suportada; use um endpoint de proxy HTTP direto e alcançável. Para o tráfego público permitido, a lista de proxies HTTP fornece candidatos de host e porta, cuja alcançabilidade deve ser verificada segundo o esquema de encaminhamento da VPN.
A definição é indicativa. As aplicações podem ignorá-la, pelo que não pode garantir que todas as ligações usem o proxy. Num túnel dividido, as aplicações que seguem a recomendação também podem tentar enviar pedidos HTTP para destinos fora da VPN através desse proxy. Essas aplicações não conseguem distinguir os dois grupos de rotas ao aplicar as informações do proxy. Verifique a alcançabilidade do intermediário segundo esse esquema de encaminhamento antes de considerar a definição completa.