2016-07-16 36 views
1

我們正在構建一個NFC應用程序,要求NFC標籤只讀一次(通過Android移動設備),然後將數據發送給處理該數據的服務器,並將處理後的結果發回給寫入數據的設備回到NFC標籤。由移動設備(其具有NFC讀取器)來執行如果沒有標籤閱讀器的相對移動,那麼NFC標籤可以是活動的?

操作:

  • 讀取標籤數據
  • 將數據發送到服務器並等待進程導致
  • 接收處理結果
  • 在標籤上寫結果

問題是,當所花費的時間高於半分鐘(d即網絡速度和服務器端處理時間)第四項操作(將處理結果寫回標記)失敗。

失敗有幾個可能的原因可能是:

  • 答:標籤是由標籤的移動由讀寫器產生的磁場內供電。在第二次和第三次操作完成並嘗試第四次操作時,標籤不再有電。
  • B:我們的代碼有缺陷,在閱讀器/標籤的對象應爲要執行的第四操作新創建(我們保持閱讀器和標籤的對象在內存中,而其他操作執行)

我們的Android應用中使用的代碼/庫(與標籤交互)由第三方提供。我對NFC(和ndef Android庫)的瞭解有限。我正在尋找作爲來自社區的幫助(如果有人有上述情況的經驗)如下:

  • 如果上述情況是因爲B發生的,我們將嘗試計算出相同的結果。 (或者向第三方供應商提供解決方案)
  • 而不是第四步失敗的原因歸結於A,我們對第三方代碼的調試是無用的。 (實際上,我們需要的是,我們更改了過程,以便應用程序在第四步發生之前再次提示用戶再次點擊標籤)
+0

什麼是圖書館(第三方)?你在logcat中看到什麼? – LaurentY

回答

1

我會將這4個步驟分成3組。

1)讀取的標籤
2)將數據發送到服務器並等待進程的結果,並接收處理結果
3)寫在標籤上

1的結果)是用戶的交互(「請點擊標籤「),
2)發生在後臺(」處理數據「)和
3)又是一次用戶交互,我要求用戶在數據從服務器返回後再次觸摸標籤(「請再次點擊標籤」)。

這有助於分離具有未定義時間的步驟(如果手機暫時沒有數據連接會怎麼樣?也很難期望用戶通過標籤穩定地保持設備,直到數據恢復。