В NdefRecord есть новый метод, который позволяет записывать AndroidApplicationRecord в NdefMessage. Это не было необходимо в предварительном Ice-Cream-Sandwich, но с тех пор, если вы хотите обрабатывать определенный URI из тега NFC в своем приложении (например, определенный в фильтре-намерении), он не будет доставлен в ваше приложение, если вы не определите это запись.Совместимость с записью приложений Android с pre-ICS
createApplicationRecord(String packageName);
Это не доступно с каким-либо пакетом совместимости (я его не нашел), но реализация довольно проста.
Сначала добавьте NdefRecord вы хотите быть читаемым любым NFC устройства (помните, что 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());