Поэтому я пытаюсь заблокировать доступ 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 или любое другое приложение?