NdefRecord には、AndroidApplicationRecord を NdefMessage に書き込むことができる新しいメソッドがあります。これは以前の Ice-Cream-Sandwich では必要ありませんでしたが、それ以降、アプリケーションで NFC タグからの特定の URI を処理したい場合 (intent-filter で定義されているように)、定義しない限り、アプリケーションに配信されません。その記録。
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());