StrictMode: как отключить «Обнаружен непомеченный сокет» в Android для targetSdk> = 28 - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь отключить одну из проверок 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: сообщение об ошибке о проблеме с тегами без тегов

...