quarta-feira, 18 de maio de 2011

Como compartilhar o banco de dados no Android entre as aplicações? / How can we share database between applications in Android?

Senhores, (Gentlemen,)

a alguns meses tenho estudado e implementado bastante no Android ... estou desenvolvendo 3 aplicações em meu projeto de mestrado que compartilham o mesmo banco de dados. (for a few months I have been studyng hard the Android development... I'm developing 3 apps for my master's project that needs to share the same database.)

O banco de dados nativo do Android é o SQLite, simples, prático e eficaz. Em versões antigas do Android era possível compartilhar o mesmo banco de dados utilizando o parâmetro ShareduserId. Entretanto, nas versões mais recentes (2.1, 2.2, 2.3..) não é mais possível. (As we know, SQLite is a native database of Android. In old Android OS we were able to share database using shareduserid parameter. But in newer versions it's not possible anymore.)

Concordei plenamente com a decisão da equipe do Android de impedir que outras aplicações consigam acessar o banco de dados de outras aplicações por questão de segurança. No entanto, o sr. "cabeça dura" aqui continuou persistindo e tentando "burlar" o sistema Android para conseguir compartilhar os dados... (Jump this translation part... I just tried and tried to share the same database with no sucesss)

Daí finalmente surgiu a solução para o meu problema... a solução chama-se Content Providers (Finally, I found a solution that calls Content Providers.)

O próprio nome "Provedor de conteúdos" explica tudo. Uma das minhas 3 aplicações funcionaria como provedor de conteúdos e as 2 outras solicita a recuperação dos dados do BD através do ContentResolver e do Cursor que realiza uma espécie de query. (Content providers would be one of my app that talk to database and allows the other app to make request like querys using ContentResolver and Cursor...)

Viva o ANDROID! (Sorry for this horrible translation... I gotta have to sleep.. it's late dude! Later I will correct this translation)

Nenhum comentário: