Android 9 HTTP e HTTPS: como configurar todas as redes em 2025

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: por que o Android 9 ainda é importante (mesmo em 2025)



Imagine a situação: você está escrevendo um aplicativo que precisa se comunicar com um servidor usando o bom e velho HTTP. Ou está testando uma API local em localhost. Você executa no Android 9 (Pie) — e obtém uma tela cinza, erro de conexão e um log com a palavra assustadora Cleartext HTTP traffic not permitted. Familiar?



O Android 9 (API 28) foi um ponto de virada: o Google proibiu por padrão conexões HTTP não seguras. Para os desenvolvedores, isso se tornou um desafio. Mesmo em 2025, com o lançamento do Android 14 e 15, milhões de dispositivos ainda rodam o "nove". Além disso, muitos aplicativos corporativos e sistemas legados são forçados a suportar HTTP. O que fazer? Como permitir todos os tipos de conexões de rede HTTP e HTTPS sem comprometer a segurança?



Neste artigo, abordaremos as melhores práticas em Kotlin que realmente funcionam em 2025. Você aprenderá não apenas "como fazer", mas "como fazer corretamente" — para que o Google Play não bloqueie e os usuários não sejam prejudicados.



O que mudou no Android 9: uma breve viagem pela história



Antes do Android 8.1, os desenvolvedores usavam HTTP sem problemas. Mas com o lançamento do Pie, o Google introduziu uma política de segurança que bloqueia o tráfego de texto claro — qualquer tráfego não criptografado via TLS. Isso afetou:



  • Requisições HTTP (porta 80);
  • WebSocket sem criptografia (ws://);
  • Alguns protocolos personalizados.


A exceção é HTTPS (porta 443) e o localhost local. Mas e se o seu servidor ainda estiver rodando em HTTP? Ou se você estiver desenvolvendo um aplicativo para a rede interna da empresa?



A solução é a Network Security Configuration. É um arquivo XML que informa ao sistema: "Ei, este domínio é confiável". Em 2025, este é o padrão de facto, e mostraremos como configurá-lo corretamente.



Método 1: A maneira mais simples — desabilitar a verificação para todo o aplicativo



Se você deseja permitir todos os tipos de conexões de rede HTTP e HTTPS para todo o aplicativo (por exemplo, para um protótipo ou build de teste), pode usar uma flag no manifesto. Mas avisamos: para produção, esta é uma má prática.



Passo 1: Adicione o atributo no AndroidManifest.xml



<application    android:allowBackup="true"    android:icon="@mipmap/ic_launcher"    android:label="@string/app_name"    android:usesCleartextTraffic="true">    ...</application>


Passo 2: Certifique-se de que targetSdkVersion = 28 ou inferior



Se targetSdkVersion >= 28, esta flag ainda funciona. Mas o Google Play pode alertar o usuário sobre um aplicativo inseguro. Em 2025, é melhor combinar este método com uma configuração mais refinada.



Prós: rápido, funciona para todos os domínios.
Contras: vulnerabilidade a ataques MitM, não passa na moderação do Google Play.



Método 2: O caminho correto através da Network Security Config (Edição 2025)



Este método é o padrão ouro. Você cria um arquivo XML onde especifica quais domínios e protocolos são permitidos. Em 2025, recomendamos usá-lo para todos os novos projetos.



Passo 1: Crie o arquivo res/xml/network_security_config.xml



Aqui está um exemplo que permite todo HTTP e HTTPS para qualquer domínio (mas com restrições):



<?xml version="1.0" encoding="utf-8"?><network-security-config>    <base-config cleartextTrafficPermitted="true">        <trust-anchors>            <certificates src="system" />        </trust-anchors>    </base-config></network-security-config>


Passo 2: Conecte a config no AndroidManifest



<application    android:networkSecurityConfig="@xml/network_security_config"    ...></application>


Go

Blogs

Book Recommendations