如果要求避免使用 Play 商店,您可以在标签上存储包含两条记录的 NDEF 消息:第一条记录包含应用程序下载页面的 URL。第二条记录包含纯文本数据。(事实上,您甚至可以将数据编码到 URL 中,因此只使用一个 URI 记录。)
+----------------------------------------------+-- ----------------+
| URI 记录:http://www.zapnologica.com/myapp | 文字记录:nnn |
+----------------------------------------------+-- ----------------+
如果您的应用程序未安装,应用程序的下载页面(此处为:http ://www.zapnologica.com/myapp )将在用户的网络浏览器中打开。
为了在标签扫描时自动启动您的应用程序,您的应用程序需要为下载 URL 定义一个意图过滤器:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="http"
android:host="www.zapnologica.com"
android:pathPrefix="/myapp" />
</intent-filter>
然后,在您的应用程序中,您可以从标签中读取整个 NDEF 消息(实际上,NDEF 消息将在 Intent 中EXTRA_NDEF_MESSAGES
自动提供给您的应用程序):
if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())) {
Parcelable[] rawMsgs = Intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
if (rawMsgs != null) {
msgs = new NdefMessage[rawMsgs.length];
for (int i = 0; i < rawMsgs.length; i++) {
msgs[i] = (NdefMessage) rawMsgs[i];
}
}
}
因此,msg[0].getRecords()
将返回两条记录——URI 记录和文本记录。