NdefRecord 中有一个新方法允许将 AndroidApplicationRecord 写入 NdefMessage。这在之前的 Ice-Cream-Sandwich 中不是必需的,但从那时起,如果您想在应用程序中处理来自 NFC 标签的特定 URI(如在意图过滤器中定义),它将不会被传递到您的应用程序,除非您定义那个记录。
createApplicationRecord(String packageName);
这不适用于某种兼容包(我没有找到),但实现相当简单。
首先添加您希望任何 NFC 设备都可以读取的 NdefRecord(请记住,URI 可以用 格式化/缩短URI_PREFIX_MAP
)
NdefRecord[] nr = new NdefRecord[2];
nr[0] = new NdefRecord(NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_URI, new byte[0], uriBytes);
在下一个地方添加您的 AAR
static final byte[] RTD_ANDROID_APP = "android.com:pkg".getBytes();
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH)
nr[1] = NdefRecord.createApplicationRecord("your.package.name");
else
nr[1] = new NdefRecord(NdefRecord.TNF_EXTERNAL_TYPE, RTD_ANDROID_APP, new byte[] {}, "your.package.name".getBytes());