2013年2月27日 星期三

應用 Android NFC App

最近搞到了幾個 NFC Tag , 想說來看看 Google Play 上有沒有甚
麼有趣的軟體可以來應用一下。

其實原本是要玩 Sony Smart Tag 的,搞到了這幾個 NFC Tag 之後,
先試著把 Smart Tag 的 URL 寫進去,測試了一下,發現其實 Sony 的
Smart Tag App 功能實在有限...

先介紹幾個基本的 App :

NXP TagInfo - 讀取 NFC Tag 資訊
NXP TagWriter -寫入 NFC Tag 資料 , 包含 URL , Text , 聯絡人... 等等

NFC 雖然可以儲存資料在 Tag 中,但根據 Tag 的不同儲存容量也不一樣

如:
  台北捷運的單程票能儲存 64 bytes (實際可用約 46bytes)
  高雄捷運的單程票大約能儲存 5xx bytes (但是 write protected)

Sony 的 Smart Tag 其實也就只是把一個自訂的 URL 寫進 NFC Tag 中,
當讀取到該 URL 的時候,就會啟動 Smart Tag 的程式進行一些設定
(如:改變音量大小、亮度、啟動無線網路... 等等)

 底下介紹幾種不錯的工具,讓手邊的 NFC Tag 能充分利用






首先,其實一般 NFC 的應用就是寫入資料提供交換,不過在 Tag
空間不大的情況下,能交換的資料其實不多,使用 1KB 的 Tag 才能
做到比較多的應用。寫入資料直接使用上面介紹的 TagWrite 就很夠
用了,像是儲存地址或者儲存名片等等。

Smart tag 是透過讀出特定的 URL , 進而將手機設定進行修改,比如
當獨到藍色的 Smart Tag , 進入車上模式,藍芽打開、3G網路打開...等
( 底下簡稱為 profile )

底下介紹到的程式都是透過讀取 Tag 來進行 profile 的切換甚至進行
特定動作(如撥打電話、開啟程式等等)。

 基本流程都是:
  由 Tag 讀取資料 => 開啟特定程式 => 根據讀到的資料找出設定檔
  => 修改設定或進行動作

【Sony Smart Tag】
Smart Tag - 算是第一版工具,僅支援五種 Smart Tag, 目前已經被 sony 建議移除
Liveware - 第二版的工具,支援 Tag 數量增加,並整合外接裝置管理功能

要偽裝 Smart Tag 只要把特殊的 URL 寫到 Tag 中,即可模擬 Smart Tag
如藍色的 Smart Tag 的 URL 是 :semc://liveware/A1/1/NT1/1/smarttags1
 (可用上面的 TagWriter 寫入 URL 功能即可)

Sony Smart Tag 的設定是儲存在手機裡面的,所以同樣的 Tag 在不同手機上
可能會有不同的效果。

優點是,因為是讀取 URL , 所以互通性高,假設 A 設定了自己手機在
車上的 Profile,B 也設定了自己的 Profile , 當在某處看到有藍色的
Smart tag (或者偽裝的),都可以掃描,各自讓手機進入自己的 profile,
而且 URL都在 48 bytes 以內,最普通的 Tag  就可以用了

缺點是,就只有那幾種 Tag 可以用,而且 Liveware 能設定的功能並不多

有興趣玩的話可以 去投台北捷運最便宜的單程票 買最便宜的 Tag , 然後
寫入這些 URL,這些 URL Google 都可以找到,或者用 SmartTag Maker
來玩玩。



【NFC Task Launcher】
NFC Task Launcher , 其功能和 Smart tag 大同小異,最不同的地方是
NFC Task Launcher 是將設定寫在 tag 中,也就是同一個 Tag 給不同手機
感應的話(當然都要安裝這個 App),所執行的動作是一樣的。

優點當然就是 profile 是跟著 tag 走的,缺點則是儲存資料最基本也要
7x bytes,空間小的 Tag 可能就沒辦法儲存了。


【AnyTAG NFC Launcher】
AnyTAG NFC Launcher 算是比較特別的設計,也是這邊最推薦使用的
工具,理念和上述兩種都相同,也是設定 profile ,讀取 tag 之後進行
一連串的動作。而 profile 的資料和 Smart Tag 一樣也是寫在手機中的。
那們特別的地方在哪呢?
AnyTAG NFC Launcher 並不會讀取 NFC 所儲存的資料,而是只讀取
Tag ID,根據 Tag ID 去進行 Profile 的動作。

優點是,因為是讀取 Tag ID , 並不需要寫入資料,也就是被保護的 NFC
也可以拿來利用,或者有其他用途的 NFC Tag 也可以在不破壞資料的情況
下拿來利用(如:悠遊卡)。

缺點就是流通性低,Tag ID 是唯一的,不過反過來想,要在外面遇到 Smart Tag
應該也很難吧,如果純粹自用的話,這個方式反而比 Smart tag 好很多。


另外,台北某種很熱門的交通工具單程票,要 format 其內容的話
目前似乎只有這個 App 能夠清除資料: NFC Tag Writer & Reader

2 則留言:

  1. 您好,

    拙學有一個NFC的疑惑請前輩指引,NFC手機和NFC晶片卡之間,
    從晶片卡讀取資料,處理加入其他資料(如時間),再寫入晶片卡,
    這一連串動作,是否可以在一次感應下就完成?
    因為目前學生作出來是感應時,只有讀取,不會寫入,再感應才會寫入,
    也就是讀取和寫入要分兩次感應,能不能一次感應就完成讀取,處理,寫入的動作呢?
    查過許多參考書和網路資料,有的說可以,但都沒有實例,全部都是讀寫分開,
    到底可不可以一次感應就完成呢?

    拙學 Stephen tzushow@gmail.com

    回覆刪除