我希望能够通过 NFC 发送一个 URL,以便它可以由接收手机的浏览器在 android 手机上打开。这是一个可能的行动吗?
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 的路。
哎呀,是的。
将包含网站 URL 的 NDEF 格式记录放在标签上,就完成了。
Android SDK充满了示例。
代码块来自 Android 参考:
这是您想要做的,但您无法更改默认 Android 浏览器的意图过滤器。
从 NFC 标签读取 NDEF 数据由标签调度系统处理,该系统分析发现的 NFC 标签,对数据进行适当分类,并启动对分类数据感兴趣的应用程序。想要处理扫描的 NFC 标签的应用程序可以声明一个意图过滤器并请求处理数据。
如果应用程序正在支持梁功能,则支持这些功能:
Android Beam™ 功能允许设备通过物理轻敲设备将 NDEF 消息推送到另一台设备上。与蓝牙等其他无线技术相比,这种交互提供了一种更简单的数据发送方式,因为使用 NFC,不需要手动设备发现或配对。当两个设备进入范围时,连接会自动开始。Android Beam 可通过一组 NFC API 使用,因此任何应用程序都可以在设备之间传输信息。例如,联系人、浏览器和 YouTube 应用程序使用 Android Beam 与其他设备共享联系人、网页和视频。
你看出两者的区别了吗?
希望这可以帮助
使用这些代码,激活 android NFC Beam。
最重要的是“http://”前缀。我相信大多数追踪到这个问题的用户都停留在这个 .
@Override
public NdefMessage createNdefMessage(NfcEvent event) {
NdefMessage msg = new NdefMessage(new NdefRecord[] {
NdefRecord.createUri("http://www.google.com")
});
return msg;
}