我希望能够通过NFC发送URL,以便在安卓手机上接收并打开该链接。这个操作是否可行?
在我苦思冥想了几个小时并浏览了许多帖子后,我发现我所需要做的就是实现NdefCallbacks并在"createNdefMessage"方法中设置URI。
首先实现NdefCallbacks。
public class MyActivity implements CreateNdefMessageCallback, OnNdefPushCompleteCallback {
添加未实现的方法
@Override
public NdefMessage createNdefMessage(NfcEvent event) {
...
}
...
@Override
public void onNdefPushComplete(NfcEvent arg0) {
...
}
NfcAdapter mNfcAdapter;
在onCreate方法中设置NFC适配器。
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");
}
return new NdefMessage(new NdefRecord[] {
NdefRecord.createUri(YOUR_URL_HERE)
});
轻点一下,Android 就会处理剩下的事情。
感谢 TAPPED 的指南,让我成功实现了 NFC 的 3/4。
<uses-permission android:name="android.permission.NFC"/>
- https://developer.android.com/reference/android/Manifest.permission.html#NFC - Mike Jarema当然可以。
只需将包含网站URL的NDEF格式记录放入标签中即可完成操作。
Android SDK中有很多例子。
代码块来自Android参考:
这就是你想做的事情,但你不能改变默认的Android浏览器的意图过滤器。
通过标签分派系统处理从NFC标签读取NDEF数据,该系统分析发现的NFC标签,适当地对数据进行分类,并启动对分类数据感兴趣的应用程序。想要处理扫描的NFC标签的应用程序可以声明一个意图过滤器并请求处理数据。
如果应用程序支持波束功能,则支持以下功能:
Android Beam™功能允许设备通过物理敲击设备将NDEF消息推送到另一个设备上。与其他无线技术(如蓝牙)相比,此交互提供了一种更简单的发送数据方式,因为使用NFC时不需要手动设备发现或配对。当两个设备进入范围时,连接会自动启动。 Android Beam可通过一组NFC API使用,因此任何应用程序都可以在设备之间传输信息。例如,联系人、浏览器和YouTube应用程序使用Android Beam与其他设备共享联系人、网页和视频。
你看到两者之间的区别了吗?
希望这有所帮助。
@Override
public NdefMessage createNdefMessage(NfcEvent event) {
NdefMessage msg = new NdefMessage(new NdefRecord[] {
NdefRecord.createUri("http://www.google.com")
});
return msg;
}