2016-02-15 2 views
1

Мой вопрос касается правильного формата для TNF_EXTERNAL_TYPE URN в теге NDEF: должно ли оно быть «com.mydomain.mydivision» или «mydivision.mydomain.com»?Формат URN для тега NDEF TNF_EXTERNAL_TYPE

В Android NFC guide состоянии, для TNF_EXTERNAL_TYPE ЦНК записей:

URI на основе URN в поле типа. URN кодируется в поле типа ЦНК в сокращенном виде: (доменное_имя) :(service_name)

и от того, что я понимаю, Урны/URIs следовать «mydivision.mydomain.com» конвенции (это я ? неправильно здесь)

Но они пишут позже, in the examples:

String domain = "com.example"; //usually your app's package name 

И еще немного, они пишут:

Урны для TNF_EXTERNAL_TYPE имеют канонический формат: урн: НФК: Ext: example.com: externalType

Так что я не знаю, что думать здесь. Каков правильный формат? Я был бы признателен за цитаты из спецификации, если они есть.

ответ

1

Правильный формат

urn:nfc:ext:<DOMAIN>:<TYPE_NAME>

где <DOMAIN> определяется как

доменное имя выдающего организации

и <TYPE_NAME> является нечувствительны к регистру имя типа строка управляемого этой организацией.

Спецификация определения типа записи в NFC Forum (начиная с версии 1.0) четко не определяет какие-либо правила для формата доменного имени. Тем не менее, все примеры, приведенные в спецификации, используют формат для доменных имен, как описано в RFC 1034. (Это также имеет смысл, поскольку спецификация относится к RFC 3986 для синтаксиса URI, который, в свою очередь, также относится к RFC 1034 для формата доменных имен.)

Следовательно, последний компонент наименования домена приходит последним, и поэтому , вы должны использовать формат «mydivision.mydomain.com».

Также обратите внимание, что механизм фильтрации намерений Android чувствителен к регистру, в то время как имя внешнего типа не зависит от регистра. Поэтому, чтобы избежать проблем, вы должны использовать только строчные буквы в имени типа.

Смежные вопросы