我的问题是关于NDEF标签中TNF_EXTERNAL_TYPE URN的正确格式:它应该是“com.mydomain.mydivision”还是“mydivision.mydomain.com”?
Android NFC guide 个状态,对于TNF_EXTERNAL_TYPE NDEF记录:
基于类型字段中URN的URI。 URN以缩写形式编码到NDEF类型字段中: (域名):(服务名)
根据我的理解,URN / URI遵循“mydivision.mydomain.com”惯例(我在这里错了吗?)
但他们后来写了in the examples:
String domain = "com.example"; //usually your app's package name
再过一点,他们写道:
TNF_EXTERNAL_TYPE的URN具有以下规范格式: 瓮:NFC:EXT:的 example.com :externalType
所以我不知道在这里想些什么。什么是正确的格式?如果有的话,我会很感激规范中的引用。
答案 0 :(得分:1)
格式正确
urn:nfc:ext:<DOMAIN>:<TYPE_NAME>
其中<DOMAIN>
定义为
发布机构的域名
和<TYPE_NAME>
是由该组织管理的不区分大小写的类型名称字符串。
NFC论坛记录类型定义规范(从1.0版开始)没有明确定义域名格式的任何规则。但是,规范中给出的所有示例都使用RFC 1034中描述的域名格式。 (这也是有道理的,因为规范引用了RFC 3986的URI语法,而后者又引用了域名格式的RFC 1034。)
因此,域名中最不具体的组成部分是最后一个,因此,您应该使用“ mydivision.mydomain.com ”格式。
另请注意,Android的intent过滤机制区分大小写,而外部类型名称不区分大小写。因此,为了避免出现问题,您应该只在类型名称中使用小写字母。