在2个NFC设备之间发送网址

时间:2012-03-20 18:09:02

标签: android nfc nfc-p2p

我有一个带有webview的android应用程序。
当webview使用某些文本进入网址时,例如票,然后我想通过NFC将网址发送到另一个NFC设备 我能够将网址发送到4型NFC标签,但我无法找到如何将其发送到其他NFC设备,以便它将使用网址启动浏览器。
我只是使用以下内容来创建NDEF

NdefRecord uriRecord = NdefRecord.createUri(url);
NdefMessage message = new NdefMessage(new NdefRecord[] {
            uriRecord            
});

然后用它来写

ndef.writeNdefMessage(message);

我正在ICS中编写应用程序(在galaxy nexus上)并试图以2.3.6发送到星系s2。

任何帮助和指针都将受到赞赏。

1 个答案:

答案 0 :(得分:2)

将NDEF消息发送到另一部手机时,不要使用标签读/写API,例如Ndef。相反,您的NDEF消息是通过NFC点对点传递的。一种方法是在Activity onCreate()中使用setNdefPushMessageCallback

    NfcAdapter nfc = NfcAdapter.getDefaultAdapter(this);
    nfc.setNdefPushMessageCallback(new NfcAdapter.CreateNdefMessageCallback()
    {
        /*
         * (non-Javadoc)
         * @see android.nfc.NfcAdapter.CreateNdefMessageCallback#createNdefMessage(android.nfc.NfcEvent)
         */
        @Override
        public NdefMessage createNdefMessage(NfcEvent event) 
        {
            NdefRecord uriRecord = NdefRecord.createUri(Uri.encode("http://www.google.com/"));
            return new NdefMessage(new NdefRecord[] { uriRecord });
        }

    }, this, this);  

当另一个NFC设备靠近并建立点对点连接时,将调用回叫。回调然后创建要发送的NDEF消息(在您的情况下:webview中显示的URL)。