3

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

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

然后用这个来写

ndef.writeNdefMessage(message);

我正在ICS(在galaxy nexus上)编写应用程序并尝试使用2.3.6发送到galaxy s2。

任何帮助和指针将不胜感激。

4

1 回答 1

2

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

    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 消息(在您的情况下:显示在 web 视图中的 URL)。

于 2012-03-20T22:52:17.553 回答