VPNService - запрещенные приложения? - PullRequest
0 голосов
/ 01 марта 2019

Поэтому я пытаюсь заблокировать доступ Google Chrome к Интернету, тогда как другие приложения могут это сделать.Я использую VPNService API, предоставляемый Android.Служба VPN настроена правильно, но я не могу заблокировать Chrome.

Это -

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        setupVPN();
    }
    return START_NOT_STICKY;
}

private void setupVPN() {
 try {
         Builder builder  = new Builder();
         builder.setSession("MyVPNService")
                .addAddress("192.168.0.1", 24)
                .addDnsServer("8.8.8.8")
                .addRoute("0.0.0.0", 0)
                .addDisallowedApplication("com.android.chrome")
                .establish();
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }
}

Я пытался использовать addDisallowedApplication, но, как говорит андроид,

Добавляет приложение, которому запрещен доступ к VPN-соединению.По умолчанию всем приложениям разрешен доступ, кроме тех, которые запрещены этим методом.Запрещенные приложения будут использовать сеть, как будто VPN не работает.VpnService.Builder может иметь только набор разрешенных приложений ИЛИ набор запрещенных, но не оба одновременно.Вызов этого метода после того, как addAllowedApplication (String) уже был вызван, или наоборот, вызовет исключение UnsupportedOperationException.имя_пакета должно быть каноническим именем установленного в данный момент приложения.PackageManager.NameNotFoundException генерируется, если такого приложения нет.

Итак, как мне успешно заблокировать Chrome или любое другое приложение?

1 Ответ

0 голосов
/ 27 июня 2019

Я могу подтвердить, что addDisallowedApplication работает;как описано, он исключает данный пакет из использования VPN.

В вашем случае это будет означать, что Chrome использует не VPN, а "обычное" простое соединение.Конечно, это никак не блокирует его.

Если вы хотите заблокировать Chrome через VPN, вы можете использовать addAllowedApplication.Конечно, вы должны убедиться, что ваш VPN-сервер блокирует соединение.

...