Я пытаюсь отключить одну из проверок Android StrictMode - обнаружение непомеченных сокетов.
У меня есть несколько причин сделать это:
Некоторые библиотеки, используемые в нашем приложении, например Crashlytics / Picasso e.t.c.
внутри используется OkHttp, а StrictMode обнаруживает немаркированный сокет
проблема в коде OkHttp (у меня нет доступа к коду сторонних библиотек для решения этой проблемы)
Мне нужно очистить свои журналы от ошибок сокетов без тегов строгого режима, которые я не могу исправить, чтобы удалить шум при обнаружении других проблем StrictMode
Чтобы включить VmPolicy, мы используем VmPolicy.Builder.detectAll () метод
Просматривая источники StrictMode, я нашел метод VmPolicy.Builder.permitUntaggedSockets, но он помечен как @hidden
и не может использоваться в API = 28
Единственное решение для этой проблемы, которое я обнаружил, - это скопировать detectAll()
тело метода в мой код и удалить вызов detectUntaggedSockets()
, но мне кажется, что он подвержен ошибкам и слабо поддерживается.
Может быть, кто-нибудь может предложить лучшее решение описанной проблемы?
Любая информация о том, «почему permitUntaggedSockets()
стала скрытой в API 28», действительно приветствуется.
Crashlytics: подробности о проблеме StrictMode
OkHttp: сообщение об ошибке о проблеме с тегами без тегов