将URL写入NFC?

时间:2013-02-15 00:22:55

标签: android 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, read只会显示字符串。我想要的URL 而是在浏览器中打开。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

您是否正在使用NDEF消息中的URL编写正确的NDEF记录?

比如使用辅助方法: http://developer.android.com/reference/android/nfc/NdefRecord.html#createUri%28android.net.Uri%29

如果您的NDEF记录只是纯文本,它将被视为纯文本。

答案 1 :(得分:2)

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();

答案 2 :(得分:0)

这是在NFC标签中写入链接的代码。

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 字段

  • google.com
  • stackoverflow.com,etx