Ir para o conteúdo
Idioma: PT

Uma tag pode guardar dados que não são NDEF?

Pode. O NDEF é uma convenção e não uma restrição física, e muitos chips permitem acesso direto à memória deles. O que você perde é interoperabilidade: conteúdo fora do NDEF não quer dizer nada para nenhum leitor que já não conheça o seu layout, inclusive o que vem embutido no sistema operacional.

Por que isso é possível

Uma tag é memória com um protocolo de acesso. O NDEF é um acordo sobre como arranjar bytes dentro dessa memória para que estranhos consigam interpretá-los, e nada impede fisicamente que você os arranje de outro jeito.

O Android expõe as tecnologias de base uma a uma, como mostra a referência de tecnologias dele, então um aplicativo pode ler e gravar blocos brutos nas famílias que permitem, em vez de passar pela camada NDEF.

O que você abre mão

De tudo o que torna uma tag útil para outra pessoa. O sistema operacional não vai reconhecer o conteúdo, nenhuma ferramenta genérica vai exibi-lo de modo significativo, e o software de nenhum outro desenvolvedor vai fazer nada com ele.

Você também abre mão do ecossistema de diagnóstico. Quando algo dá errado, uma ferramenta de leitura diz que a tag não está formatada ou guarda dados desconhecidos, o que é verdade e não ajuda, e você está depurando sozinho.

Para qualquer coisa tocada pelo público, isso é desqualificante. Um cartaz cuja tag só funciona com o seu aplicativo é um cartaz que não faz nada para quem passa.

Quando isso é legítimo

Em sistemas fechados em que você controla as duas pontas. O seu aplicativo, as suas tags, os seus leitores, e nenhuma expectativa de que mais alguma coisa vá interagir com eles.

Em dados binários compactos em que a sobrecarga do NDEF realmente não cabe, o que é uma restrição real nos menores chips e rara no resto.

Em recursos específicos do chip que vivem inteiramente fora da área NDEF: páginas de configuração, contadores, áreas de senha. Usá-los não é bem uma escolha entre NDEF e acesso bruto, já que eles simplesmente não fazem parte da região NDEF.

Fazer os dois coexistirem

Em muitos chips você pode ter os dois. O NDEF ocupa a região definida dele, e a memória fora dela guarda o que você quiser.

Em geral é essa a resposta certa quando o acesso bruto tenta. Uma URL em NDEF dá a todo mundo um resultado sensato, e o seu próprio aplicativo encontra os dados extras onde os deixou.

A tag passa então a funcionar para estranhos e a funcionar melhor para você, que é uma posição estritamente melhor que escolher um público. Custa a sobrecarga do NDEF, e esse é o preço de ser legível.

Perguntas frequentes

Um celular mostra alguma coisa de uma tag sem NDEF?

Ele vai detectar a tag e informar a tecnologia dela, e depois dizer que não há nada sobre o que agir. Para um usuário isso é idêntico a uma tag quebrada, que é o custo prático de sair da convenção.

Eu posso esconder dados numa tag desse jeito?

Não de quem procurar. A memória fora da região NDEF é legível por qualquer aplicativo disposto a ler blocos brutos, então isso é obscuridade e não proteção. As áreas protegidas por senha são outro mecanismo.

Todas as tags permitem acesso bruto à memória?

Depende da família de chip e do que a plataforma expõe. Algumas permitem acesso direto a blocos, outras só pela camada NDEF, então a capacidade tem de ser confirmada para o chip específico.

Uma tag com NDEF e dados brutos ainda é padrão?

Sim, desde que a região NDEF esteja bem formada. Os leitores usam a estrutura para achar o conteúdo NDEF e ignoram o resto, que é exatamente o que faz a coexistência funcionar.