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.