ContentProvider no Android, Entendendo e Utilizando

Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba grátis conteúdos Android sem precedentes! Você receberá um email de confirmação. Somente depois de confirma-lo é que eu poderei lhe enviar os conteúdos semanais exclusivos. Os artigos em PDF são entregues somente para os inscritos na lista.

Email inválido.
Blog /Android /ContentProvider no Android, Entendendo e Utilizando

ContentProvider no Android, Entendendo e Utilizando

Vinícius Thiengo
(4040)
Go-ahead
"Sempre sonhe e mire mais alto do que você sabe que você pode fazer. Não se preocupe em ser melhor do que seus contemporâneos e antecessores. Tente ser melhor do que você mesmo."
William Faulkner
Kotlin Android
Capa do livro Mapas Android de Alta Qualidade - Masterização Android
TítuloMapas Android de Alta Qualidade - Masterização Android
CategoriasAndroid, Kotlin, Masterização, Especialização
AutorVinícius Thiengo
Edição
Ano2020
Capítulos11
Páginas166
Acessar Livro
Quer aprender a programar para Android? Acesse abaixo o curso gratuito no Blog.
Conteúdo Exclusivo
Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba gratuitamente conteúdos Android sem precedentes!
Email inválido

Tudo bem?

Na vídeo aula acima nós vamos, passo a passo, destrinchar o principal componente Android de compartilhamento de conteúdo privado.

Estamos falando do ContentProvider e consequentemente de algumas outras APIs que o complementam, são elas:

  • ContenteResolver;
  • UriMatcher.

É muito importante que você, antes de consumir a vídeo aula, leia todo este artigo. Pois aqui tem dicas importantes para que você não se perca neste conteúdo, que apesar de longo é bem completo.

Já quero lhe adiantar que o conteúdo sobre ContentProvider, o domínio deste conteúdo (em meu ponto de vista), é um excelente primeiro passo para a sua masterização (especialização) como desenvolvedor de aplicativos Android.

Pois apesar de ser algo muito especifico de domínio, ou seja, serão poucos os projetos Android que exigirão de você a implementação de compartilhamento de conteúdo com um ContentProvider.

Apesar disso, aprender e dominar o trabalho com está API vai facilitar em muito o seu trabalho como profissional de desenvolvimento de apps Android.

Pois você, de forma inevitável, entenderá mais sobre como funciona o compartilhamento seguro de dados com aplicativos clientes.

Além de ter a habilidade de fazer isso com a API recomendada pela documentação oficial. Ainda com a possibilidade de configuração completa em projeto em poucos minutos.

E mais... algo que eu Vinícius considero muito importante:

Se você domina conteúdos que exigem mais foco e dedicação, conteúdos difíceis. Como no caso do ContentProvider.

Então o domínio de outros conteúdos fáceis, ou não, será bem mais simples.

Mas antes que você se sinta confuso, principalmente porque eu ainda não lhe dei uma definição completa.

Antes dessa possível confusão... basicamente o ContentProvider é:

Uma API Android que permite que nós desenvolvedores liberemos alguns dados de nossos aplicativos para outros apps.

Isso de maneira segura, padronizada e controlada.

Os dados podem ter inúmeras origens a partir de nosso aplicativo.

Exemplo:

SQLite;

✓ Arquivos de mídia (imagem, vídeo, áudio) armazenados dentro de folders no SDCard, folders vinculados ao nosso app;

✓ ...

Com a API ContentResolver e com acesso às URIs de compartilhamento de dados de nosso aplicativo, utilizando o UriMatcher, os aplicativos de terceiros (aplicativos clientes) poderão acessar todos os dados de nosso aplicativo, dados que são passíveis de acesso.

Esquema Android da API ContentProvider em um aplicativo

Um exemplo para ficar bem claro. Mesmo que não recomendado dessa forma...

... é possível permitir que aplicativos sociais consigam preencher os dados de cadastro de um novo usuário. Isso com acesso, via ContentResolver, à configuração ContentProvider de nosso app.

Há inúmeras maneiras de permitir que dados de seu aplicativo sejam acessados.

Mas sem sombra de dúvidas o uso de ContentProvider já oferece ao menos uma camada de segurança que alivia a nossa "dor" como desenvolvedor de ter que desenvolver na "unha" todo o algoritmo de segurança.

Voltando ao assunto "vídeo aula"...

Não deixe de entender por completo, além do ContentProvider, as APIs ContentResolverUriMatcher.

Como informado anteriormente, é o ContentResolver que permite o acesso ao ContentProvider.

E o UriMatcher, apesar de não ser obrigatório na comunicação ContentResolver ⇄ ContentProvider, é essa API que padroniza a "linguagem" utilizada na comunicação.

Sempre é bom lembrar: "Padronização evita confusão."

Fique também ligado em toda a configuração necessária no AndroidManifest.xml. Configuração com as tags <provider><permission> e <uses-permission>.

São essas tags que informam a todo o sistema, incluindo quando já na Google Play Store, que o aplicativo provê conteúdos via ContentProvider.

E como último informe sobre o conteúdo da vídeo aula:

Para compartilhamento de conteúdos binários (imagem, vídeo, áudio, ...) via openInputStream() e openOutputStream()...

... temos também que trabalhar com a coluna _data (não é obrigatório, mas é uma escolha inteligente) no SQLite para que não seja necessária a implementação do código que abre e fecha o stream da entidade binária.

Então é isso.

Se você está preocupado em ir para o próximo nível no desenvolvimento de aplicativos Android. Preocupado em se masterizar, se especializar.

Então dominar o ContentProvider será um excepcional primeiro (ou o mais novo) passo.

Antes de finalizar, deixo abaixo alguns links de outros conteúdos do Blog que lhe colocarão em dia com o que há de atual no mercado de desenvolvimento de aplicativos Android:

E caso você tenha como meta aprender a criar aplicativos, ou evoluir nesta área, também com o conteúdo gratuito do Blog e canal, então não deixe de acessar a lista de estudos em:

Não esqueça de se inscrever 📫 na lista de e-mails do Blog para receber os conteúdos Android em primeira mão e também em formato PDF (esse formato é liberado somente para os inscritos na lista de e-mails).

Se inscreva também no canal do Blog no YouTube para acompanhar as últimas novidades.

Surgindo dúvidas ou dicas, pode enviar abaixo na área de comentários que logo eu lhe retorno.

Obs. : o link para download do projeto apresentado na vídeo aula se encontra logo abaixo no artigo, mais precisamente na seção "Download".

Abraço.

Eclipse IDE vs Android Studio IDE

Apesar do conteúdo da vídeo aula acima estar utilizando o Eclipse IDE 😱. Tudo que é apresentado, tanto a parte teórica quanto a parte prática, é ainda válido nos dias de hoje com o desenvolvimento Android utilizando o Android Studio 😁.

Ou seja, independente da linguagem oficial (Java, Kotlin, C ou C++), IDE ou framework que você esteja utilizando, o conteúdo acima é ainda de grande utilidade.

AndroidX

Apesar do conteúdo sobre ContentProvider ainda estar atual e ser um grande diferencial para qualquer nível de desenvolvedor Android.

Principalmente para aqueles que estão buscando a masterização (especialização) como desenvolvedor mobile.

Apesar disso eu também recomendo, assim que finalizado o projeto em sua própria instalação de IDE, que você o migre para o AndroidX.

Algo que pode ser feito com poucos cliques, como apresentado no tutorial a seguir: Migrar para o AndroidX.

Fontes

Documentação oficial ContentProvider Android

Documentação oficial ContentResolver Android

Documentação oficial UriMatcher Android

Fundamentos do provedor de conteúdo

Criação de um provedor de conteúdo

Página que contém o detalhamento dos componentes de implementação do ContentProvider no site oficial do Android

ListView: Entendendo e Utilizando no Android

Utilizando BaseAdapter Para Personalização Completa da ListView

Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba grátis conteúdos Android sem precedentes!
Email inválido

Relacionado

Integração do Facebook SDK no AndroidIntegração do Facebook SDK no AndroidAndroid
Login do Facebook no Android com LoginButtonLogin do Facebook no Android com LoginButtonAndroid
Compartilhamento com Facebook SDK no AndroidCompartilhamento com Facebook SDK no AndroidAndroid
Compartilhamento com Facebook ShareDialog no AndroidCompartilhamento com Facebook ShareDialog no AndroidAndroid

Compartilhar

Comentários Facebook

Comentários Blog

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...