Формат URN для тега NFEF TNF_EXTERNAL_TYPE

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

В руководстве NFC для Android указано для записей TNF_EXTERNAL_TYPE NDEF:

URI на основе URN в поле типа. URN закодирован в поле типа NDEF в сокращенной форме: (имя_домена) :( service_name)

и из того, что я понимаю, URNs/URI следуют соглашению "mydivision.mydomain.com" (я здесь не так?)

Но они пишут позже, в примерах:

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

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

URN для TNF_EXTERNAL_TYPE имеют канонический формат: urn: nfc: ext: example.com: externalType

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

+1
источник поделиться
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 чувствителен к регистру, в то время как внешнее имя типа нечувствительно к регистру. Поэтому, чтобы избежать проблем, вы должны использовать только строчные буквы в имени типа.

+1
источник

Посмотрите другие вопросы по меткам или Задайте вопрос