我正在编写一个应用程序,可以使用URI方案来侦听NFC标签。从Android NFC获取URI意图
我有一个意图过滤器:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="[theschemeofmyuri]" />
</intent-filter>
和活动被正确地推出了针对我的NFC标签。现在我写的代码邪恶块,试图提取URI,虽然我已删除了错误处理,以使其更容易因此,阅读:
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
NdefMessage[] msgs;
Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
msgs = new NdefMessage[rawMsgs.length];
for (int i = 0; i < rawMsgs.length; i++) {
msgs[i] = (NdefMessage) rawMsgs[i];
}
NdefRecord[] recs = msgs[0].getRecords();
Log.i(TAG, new String(recs[0].getPayload(), "UTF-8"));
这似乎是打印出来了空字节在开始。
事情是,我知道URI已经被意图过滤器的系统解析。我现在需要再次解析吗?那么这个空字节呢?我可以忽略它吗?
真正的问题是,有没有更简单的方法?