Write URL to NFC?



如何将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

最新更新