Android 有人真的能够在现实世界的应用程序中交换NDEF消息吗?
我实现了一个基于Android Beaming的应用程序,提供两台设备之间的交互 在我当前的实现中,波束功能无法使用。当两台设备相互接触并且其中一台准备发射时,屏幕上会显示“touch to beam”(或者类似的东西,我将设备设置为意大利语)(在两台设备上,这很奇怪)。当我99.9%的时候点击“触控光束”时,安卓会让我把设备移近一些,但它们实际上是相互接触的(手机的背面相互接触) 这两款设备分别是Nexus9(最新版安卓5)和LG G2(安卓4.4)。LG G2与Nexus之间的通信不那么烦人,比如说,它的“故障”率约为80% 这是我用于在活动内部传播的简单代码:Android 有人真的能够在现实世界的应用程序中交换NDEF消息吗?,android,nfc,nfc-p2p,android-beam,Android,Nfc,Nfc P2p,Android Beam,我实现了一个基于Android Beaming的应用程序,提供两台设备之间的交互 在我当前的实现中,波束功能无法使用。当两台设备相互接触并且其中一台准备发射时,屏幕上会显示“touch to beam”(或者类似的东西,我将设备设置为意大利语)(在两台设备上,这很奇怪)。当我99.9%的时候点击“触控光束”时,安卓会让我把设备移近一些,但它们实际上是相互接触的(手机的背面相互接触) 这两款设备分别是Nexus9(最新版安卓5)和LG G2(安卓4.4)。LG G2与Nexus之间的通信不那么烦人
...
nfcAdapter.setNdefPushMessageCallback(new NfcAdapter.CreateNdefMessageCallback() {
@Override
public NdefMessage createNdefMessage(NfcEvent event) {
if(DEBUG) Log.d(TAG, "push message callback - message created");
return createApprovalRequestNDEFmsg();
}
}, this);
nfcAdapter.setOnNdefPushCompleteCallback(new NfcAdapter.OnNdefPushCompleteCallback() {
@Override
public void onNdefPushComplete(NfcEvent event) {
if(DEBUG) Log.d(TAG, "push complete");
waitForClientMessage();
}
...
protected void waitForClientMessage() {
Log.d(TAG, "Waiting for the reply message from the client.");
nfcAdapter.setNdefPushMessageCallback(null, this);
nfcAdapter.enableForegroundDispatch(this, nfcPendingIntent, readTagFilters, null);
}
}, this);
NDEF消息的大小约为100字节。在waitForClientMessage
方法中,活动(在Nexus上运行)设置一个pendingent
,用于从客户端接收NFC推送消息(在LG G2上运行)
在发射成功的0.1%情况下,操作系统会在接收电话上创建正确的活动。正如我所说,返回消息(来自LG G2->Nexus)通常更容易接收
您对这款Android Beaming有何体验?您是否必须实现一些特殊的功能,才能在两台设备之间进行模糊可用的交互
可能我需要添加更多的信息,但我不知道是哪一个,因为所有内容在概念上都很简单,而且API非常有限