2015-07-10 109 views
1

我需要禁用波束並啓用某些片段。所以我有基片段,供應商片段和產品片段。在基地片段的onResume我打電話:禁用某些片段的Android波束

NfcAdapter adapter = NfcAdapter.getDecaultAdapter(getActivity()); 
adapter.setNdefPushMessage(null, getActivity()); 

所以在這一點,當我把兩個NFC設備連接在一起,它播放的聲音,但沒有涉及UI。這就是我要的。

然後用戶進入產品的訂單在ordersummary片段的產品和審查sthem。在此創建我的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。

回答

0

您正在混合兩種不同的方法:基於靜態和回調。爲了禁用基於回調的方法,你必須調用setNdefPushMessageCallback傳遞null爲回調:

adapter.setNdefPushMessage(null, getActivity()); 
adapter.setNdefPushMessageCallback(null, getActivity()); 
adapter.setOnNdefPushCompleteCallback(null, getActivity()); 
+0

感謝您的解決方案。發佈後,我嘗試添加回調設置爲空,它運作良好。我只是沒有機會在這裏更新。 –