android - TNF_EXTERNAL_TYPE NDEF 标签的 URN 格式

标签 android format uri nfc ndef

我的问题是关于 NDEF 标签中 TNF_EXTERNAL_TYPE URN 的正确格式:它应该是“com.mydomain.mydivision”还是“mydivision.mydomain.com”?

Android NFC guide 状态,对于 TNF_EXTERNAL_TYPE NDEF 记录:

URI based on the URN in the type field. The URN is encoded into the NDEF type field in a shortened form: (domain_name):(service_name)

据我所知,URN/URI 遵循“mydivision.mydomain.com”约定(我在这里错了吗?)

但他们后来写道,in the examples :

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

再进一步,他们写道:

URNs for TNF_EXTERNAL_TYPE have a canonical format of: urn:nfc:ext:example.com:externalType

所以我不知道该怎么想。正确的格式是什么?如果有规范,我将不胜感激。

最佳答案

正确的格式是

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

哪里<DOMAIN>定义为

the domain name of the issuing organization

<TYPE_NAME>是由该组织管理的不区分大小写的类型名称字符串。

NFC 论坛记录类型定义规范(从 1.0 版开始)没有明确定义域名格式的任何规则。但是,规范中给出的所有示例都使用 RFC 1034 中描述的域名格式。 . (这也是有道理的,因为规范引用了 RFC 3986 的 URI 语法,反过来也引用了 RFC 1034 的域名格式。)

因此,域名中最不具体的部分排在最后,因此您应该使用“mydivision.mydomain.com”格式。

另请注意,Android 的 Intent 过滤器机制区分大小写,而外部类型名称不区分大小写。因此,为避免出现问题,您应该只在类型名称中使用小写字母。

关于android - TNF_EXTERNAL_TYPE NDEF 标签的 URN 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35402895/

相关文章:

C++ |如何格式化和导出由二维矩阵组成的简单二进制文件

Mysql日期时间格式错误

sql - 有用于将sql语句转换为字符串格式的在线工具吗?

javascript - URI 错误 : malformed URI sequence?

wordpress - 如何将 "mobile deep link"设置为可从 woocommerce 下载的文件?

android - java.lang.BootstrapMethodError : Exception from call site #2 bootstrap method on CameraX (1. 0.0-alpha06)

android - 'setConfigSettings(FirebaseRemoteConfigSettings!): Unit' is deprecated

android - 为什么在 Android 应用程序中使用 gmail 登录时显示未注册的 Android 应用程序消息?

ruby - 在 Ruby 中解析 URL 字符串

java - 删除 fragment 不起作用