Мне нужно отслеживать всю сетевую активность на устройстве как часть моего приложения, а не для целей отладки. This post говорит об использовании дампа TCP, но некоторые ответы предполагают, что для этого требуется root. Ни один из ответов не объясняет, как вы это сделаете в приложении.Как работают приложения для Android, которые контролируют всю сетевую активность?
Я знаю, что как-то можно получить доступ ко всему сетевому трафику из приложения, потому что приложения, такие как Network Connections, могут отображать все доступные IP-адреса, а также какие приложения обращаются к ним.
Кто-нибудь знает, какие API, разрешения и т. Д. Мне нужно будет использовать, чтобы получить данные такого типа в моем приложении?
Если это для отладки это зависит от того, что вы используете для транспортировки данных. HttpUrlConnection, HttpClient, OkHttp. Вы можете легко регистрировать все данные, проходящие через них. –
Чтобы уточнить, я хочу отслеживать всю сетевую активность на устройстве, а не только из моего приложения, и я хочу, чтобы он был доступен конечному пользователю, а не только для отладки. Я думаю, что редактирование другого пользователя сделало это менее понятным (хотя это было полезно в целом!) –