为某些片段禁用 Android 光束
Disable Android beam for certain fragments
我需要禁用光束并在某些片段上启用。所以我有基本片段、供应商片段和产品片段。在基本片段 onResume 中,我调用:
NfcAdapter adapter = NfcAdapter.getDecaultAdapter(getActivity());
adapter.setNdefPushMessage(null, getActivity());
所以此时,当我将两个 NFC 设备放在一起时,它会播放声音,但不涉及 UI。这就是我想要的。
然后用户转到产品,订购产品并在 ordersummary 片段上查看 stem。在这里,我创建了我的 NDEF 消息并将其传递到我的 NDEF 推送消息回调中:
mNfcAdapter.setNdefPushMessageCallback(new NfcAdapter.CreateNdefMessageCallback() {
@Override
public NdefMessage createNdefMessage(NfcEvent event) {
NdefMessage message = new NdefMessage((new NdefRecord[]{createMime("application/com.me.myactivity.fragments", mToBeam.getBytes()) }));
return message;
}
}, mActivity);
mNfcAdapter.setOnNdefPushCompleteCallback(new NfcAdapter.OnNdefPushCompleteCallback() {
@Override
public void onNdefPushComplete(NfcEvent event) {
}
}, mActivity);
然而,在成功传输后,我会将用户带回产品页面,在 onResume()
我调用:
mNfcAdapter.setNdefPushMessage(null, getActivity());
然而,这被称为,现在当我将两个设备放在一起时,即使消息为空,我也会得到 UI。
您正在混合使用两种不同的方法:静态方法和基于回调的方法。为了禁用基于回调的方法,您必须调用 setNdefPushMessageCallback
传递 null
作为回调:
adapter.setNdefPushMessage(null, getActivity());
adapter.setNdefPushMessageCallback(null, getActivity());
adapter.setOnNdefPushCompleteCallback(null, getActivity());
我需要禁用光束并在某些片段上启用。所以我有基本片段、供应商片段和产品片段。在基本片段 onResume 中,我调用:
NfcAdapter adapter = NfcAdapter.getDecaultAdapter(getActivity());
adapter.setNdefPushMessage(null, getActivity());
所以此时,当我将两个 NFC 设备放在一起时,它会播放声音,但不涉及 UI。这就是我想要的。
然后用户转到产品,订购产品并在 ordersummary 片段上查看 stem。在这里,我创建了我的 NDEF 消息并将其传递到我的 NDEF 推送消息回调中:
mNfcAdapter.setNdefPushMessageCallback(new NfcAdapter.CreateNdefMessageCallback() {
@Override
public NdefMessage createNdefMessage(NfcEvent event) {
NdefMessage message = new NdefMessage((new NdefRecord[]{createMime("application/com.me.myactivity.fragments", mToBeam.getBytes()) }));
return message;
}
}, mActivity);
mNfcAdapter.setOnNdefPushCompleteCallback(new NfcAdapter.OnNdefPushCompleteCallback() {
@Override
public void onNdefPushComplete(NfcEvent event) {
}
}, mActivity);
然而,在成功传输后,我会将用户带回产品页面,在 onResume()
我调用:
mNfcAdapter.setNdefPushMessage(null, getActivity());
然而,这被称为,现在当我将两个设备放在一起时,即使消息为空,我也会得到 UI。
您正在混合使用两种不同的方法:静态方法和基于回调的方法。为了禁用基于回调的方法,您必须调用 setNdefPushMessageCallback
传递 null
作为回调:
adapter.setNdefPushMessage(null, getActivity());
adapter.setNdefPushMessageCallback(null, getActivity());
adapter.setOnNdefPushCompleteCallback(null, getActivity());