如何将URL写入NFC标签,以便在读取时自动打开链接?
目前,我正在使用以下意图:
<activity
android:name="com.myapp.ReadTagActivity"
android:screenOrientation="portrait"
android:label="@string/title_activity_readtag"
android:parentActivityName=".MainActivity">
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/com.myapp" />
</intent-filter>
</activity>
如果写入操作进入URL www.google.com,读取将只显示字符串。我想要URL改为在浏览器中打开。我该怎么解决这个问题?
您是否使用NDEF消息中的URL编写了正确的NDEF记录?
例如使用helper方法:http://developer.android.com/reference/android/nfc/NdefRecord.html#createUri%28android.net.Uri%29
如果你的NDEF记录只是纯文本,它将被解读为纯文本。
NfcAdapter mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
Intent intent = getIntent();
Tag mytag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
Uri uri =Uri.parse("Your Url");
NdefRecord recordNFC =NdefRecord.createUri(uri);
NdefMessage message = new NdefMessage(recordNFC );
Ndef ndef = Ndef.get(tag);
ndef.connect();
ndef.writeNdefMessage(message);
ndef.close();
以下是在NFC标签中写入Link的代码。
ndef.connect();
NdefRecord mimeRecord = NdefRecord.createUri(linkPrefix + pageLink);
ndef.writeNdefMessage(new NdefMessage(mimeRecord));
ndef.close();
可以将below
链接前缀写入linkPrefix字段
"http://www."
"https://www."
"ftps://"
"sftp://"
"smb://"
"nfs://"
"ftp://"
"dav://"
"file://"
并将页面链接写入pageLink字段
- 谷歌
- stackoverflow.com,etx