Я хочу установить PA C proxy uri на уровень устройства, чтобы весь трафик устройства c проходил через прокси PA C. Я использовал ProxyInfo класс с PA C uri в качестве параметра для VPNService.Builder.setHttpProxy .
Я не создаю туннель, так как хочу это будет локальный VPN. Этот код работает на эмуляторе, но не работает на устройстве (и эмулятор, и устройство работают на android 10).
Ниже приведен код, который я использую для установки sh VPN:
VpnService.Builder builder = mService.new Builder();
builder.addAddress("172.16.10.119", 24);
// builder.addRoute("0.0.0.0", 0);
builder.addDnsServer("8.8.4.4");
builder.setSession(mServerName).setConfigureIntent(mConfigureIntent);
Uri pacUri = Uri.parse(sPacUrl);
ProxyInfo pInfo = ProxyInfo.buildPacProxy(pacUri);
builder.setHttpProxy(pInfo);
final ParcelFileDescriptor vpnInterface;
synchronized (mService) {
vpnInterface = builder.establish();
if (mOnEstablishListener != null) {
mOnEstablishListener.onEstablish(vpnInterface);
}
}
Может кто-нибудь помочь мне понять, что я делаю неправильно, или предложить, если есть какой-либо альтернативный способ установить PA C Uri на android устройство?