2016-02-15 57 views
1

我的問題是關於NDEF標記中TNF_EXTERNAL_TYPE URN的正確格式:它應該是「com.mydomain.mydivision」還是「mydivision.mydomain.com」?TNF_EXTERNAL_TYPE NDEF標記的URN格式

Android NFC guide狀態,爲TNF_EXTERNAL_TYPE NDEF記錄:

URI基於類型字段的URN。骨灰盒被編碼到NDEF類型字段的縮寫形式: (域名):(服務名)

,並從我個人理解,骨灰盒/的URI遵循「mydivision.mydomain.com」約定(我是?錯在這裏)

可是後來寫,in the examples

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

和一點點進一步,他們寫道:

個垃圾桶TNF_EXTERNAL_TYPE有一個規範的格式: 甕:NFC:EXT:example.com:externalType

所以我不知道該怎麼想到這裏。什麼是正確的格式?如果有任何問題,我會很感激來自規範的報價。

回答

1

正確的格式是

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

其中<DOMAIN>被定義爲

發行機構

<TYPE_NAME>的域名是管理不區分大小寫的類型名稱字符串由該組織。

NFC論壇記錄類型定義規範(截至版本1.0)沒有明確定義域名格式的任何規則。但是,說明中給出的所有示例均使用RFC 1034中描述的域名格式。 (這也是有意義的,因爲規範提及URI語法的RFC 3986,反過來也指RFC 1034的域名格式。)

因此,域名中最不特定的組件是最後一個,因此,您應該使用格式「mydivision.mydomain.com」。

另請注意,Android的意圖過濾機制區分大小寫,而外部類型名稱不區分大小寫。爲避免出現問題,您應該只在類型名稱中使用小寫字母。