5

我希望能够通过 NFC 发送一个 URL,以便它可以由接收手机的浏览器在 android 手机上打开。这是一个可能的行动吗?

4

4 回答 4

4

在挠了几个小时并浏览了许多帖子之后。我发现我需要做的就是实现 NdefCallbacks 并在“createNdefMessage”方法中设置 uri。

首先实现 NdefCallbacks

public class MyActivity implements CreateNdefMessageCallback, OnNdefPushCompleteCallback {

添加未实现的方法

@Override
public NdefMessage createNdefMessage(NfcEvent event) {  
    ...
}
...
@Override
public void onNdefPushComplete(NfcEvent arg0) {
    ...
}

在您的活动顶部创建一个 NFC 适配器

NfcAdapter mNfcAdapter;

然后在 onCreate 方法中设置 NFC Adapter

mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
if(mNfcAdapter != null) {
    // Register callback to set NDEF message
    mNfcAdapter.setNdefPushMessageCallback(this, this);

    // Register callback to listen for message-sent success
    mNfcAdapter.setOnNdefPushCompleteCallback(this, this);
} else {
    Log.i("LinkDetails", "NFC is not available on this device");
}

然后将以下内容放入您的 createNdefMessage 方法中:

return new NdefMessage(new NdefRecord[] {
    NdefRecord.createUri(YOUR_URL_HERE)
});

点击离开,Android 将处理其余的事情。

感谢TAPPED的优秀人员的指导,这让我在成功实施 NFC 的道路上走了大约 3/4 的路。

于 2013-02-25T22:19:42.653 回答
3

哎呀,是的。

将包含网站 URL 的 NDEF 格式记录放在标签上,就完成了。

Android SDK充满了示例。

于 2013-01-14T21:58:37.440 回答
1

代码块来自 Android 参考:

这是您想要做的,但您无法更改默认 Android 浏览器的意图过滤器。

从 NFC 标签读取 NDEF 数据由标签调度系统处理,该系统分析发现的 NFC 标签,对数据进行适当分类,并启动对分类数据感兴趣的应用程序。想要处理扫描的 NFC 标签的应用程序可以声明一个意图过滤器并请求处理数据。

如果应用程序正在支持梁功能,则支持这些功能:

Android Beam™ 功能允许设备通过物理轻敲设备将 NDEF 消息推送到另一台设备上。与蓝牙等其他无线技术相比,这种交互提供了一种更简单的数据发送方式,因为使用 NFC,不需要手动设备发现或配对。当两个设备进入范围时,连接会自动开始。Android Beam 可通过一组 NFC API 使用,因此任何应用程序都可以在设备之间传输信息。例如,联系人、浏览器和 YouTube 应用程序使用 Android Beam 与其他设备共享联系人、网页和视频。

你看出两者的区别了吗?

希望这可以帮助

于 2013-01-14T21:55:27.333 回答
1

使用这些代码,激活 android NFC Beam。

最重要的是“http://”前缀。我相信大多数追踪到这个问题的用户都停留在这个 .

@Override
public NdefMessage createNdefMessage(NfcEvent event) {
    NdefMessage msg = new NdefMessage(new NdefRecord[] { 
        NdefRecord.createUri("http://www.google.com")
    });
    return msg;
}
于 2014-10-07T09:44:42.603 回答