1. 程式人生 > >NFC 近場通訊

NFC 近場通訊

NFC手機相比普通手機來說,有以下3個附加功能: 
  1.可以當成POS機來用,也就是“讀取”模式  
  2.可以當成一張卡來刷,也就是NFC技術最核心的移動支付功能 
  3.可以像藍芽、Wi-Fi一樣做點對點通訊 

Near  Field Communication (NFC) 為一短距離無線通訊技術,通常有效通訊距離為4釐米以內。NFC工作頻率為13.65 兆赫茲,通訊速率為106 kbit/秒到 848kbit/秒。

NFC通訊總是由一個發起者 (initiator)和一個接受者(target)組成。通常initiator 主動傳送電磁場(RF)可以為被動式接受者(passive target)提供電源。其工作的基本原理和收音機類似。正是由於被動式接受者可以通過發起者提供電源,因此target 可以有非常簡單的形式,比如標籤,卡,sticker 的形式。

NFC 也支援點到點的通訊(peer to peer) 此時參與通訊的雙方都有電源支援。

和其它無線通訊方式如Bluetooth相比,NFC 支援的通訊頻寬和距離要小的多,但是它成本低,如價格標籤可能只有幾分錢,也不需要配對,搜尋裝置等,通訊雙方可以在靠近的瞬間完成互動。

Android NFC 應用中,Android手機通常是作為通訊中的發起者,也就是作為NFC的讀寫器。Android手機也可以模擬作為NFC通訊的接受者且從Android 2.3.3起也支援P2P通訊。

Android對NFC的支援主要在 android.nfc 和android.nfc.tech 兩個包中。

android.nfc 包中主要類如下:

  • NfcManager 可以用來管理Android裝置中指出的所有NFC Adapter,但由於大部分Android裝置只支援一個NFC Adapter,可以直接使用getDefaultAapater 來獲取系統支援的Adapter。
  • NfcAdapter 為一NFC Adapter 物件,可以用來定義一個Intent使系統在檢測到NFC Tag時通知你定義的Activity,並提供用來註冊forground tag 訊息傳送的方法等。
  • NdefMessage 和NdefRecord NDEF 為NFC forum 定義的資料格式。

Tag 代表一個被動式Tag物件,可以代表一個標籤,卡片,鑰匙扣等。當Android裝置檢測到一個Tag時,會建立一個Tag物件,將其放在Intent物件,然後傳送到相應的Activity。

android.nfc.tech 中則定義了可以對Tag進行的讀寫操作的類,這些類按照其使用的技術型別可以分成不同的類如:NfcA, NfcB, NfcF,以及MifareClassic 等。

NFC技術在國內發展如何?


NFC之所以光明原因在於以下四點:

第一、NFC晶片的價格已經在逐步的降低,為NFC功能的普及降低了門檻。具體的資料已經找不到了,我記得在06年的時候,一枚NFC晶片的價錢在3~~5歐元之間,而最新的訊息顯示博通公司收購了NFC公司,晶片量產的價格有望低於1美元,這樣子有點像當初GPS的普及一樣。

第二、NFC技能受到了國外各個領域巨頭的支援,NFC 技能論壇包括了140多名成員,包括手機生產商、電信運營商、金融機構和軟體開發商等,手機生產商包括三星、諾基亞、LG等國際知名品牌,電信運營商有 T-mobile、sprint等,金融機構有ISIS、visa等,軟體開發商有現在的谷歌以及在不久將會加入的蘋果這個當代皇者。

第三、NFC技術可適用於很多場景,比 如進場支付、公交卡、門禁卡、車票門票、檔案傳輸、電子名片、遊戲配對等。你可以通過帶有NFC功能的手機買東西、簽到、刷公交卡或門票,或者和別人交換 名片、傳輸檔案、聯機遊戲等等,即使你的手機沒有電了,仍然可以講它當做一個交通卡適用,它和我們手中的各種感應卡片完全一樣,屬於被動啟用的。

第四、NFC和傳統的近場支付技術相比,具有天然的安全性,以及建立連線的快速性。

一個啟用NFC晶片的終端多少錢我忘記了,但是絕對不便宜。而NFC的價值就是在於支援的環境多種多樣,能夠在各種環境中實現各種能夠,只有各種基礎設施對於NFC支援得越多,那麼NFC的價值才能夠得到最大程度上的體現。

所以,NFC技術目前在國內面臨的第二個問題就是基礎設施的不完善,找不到一套可迴圈的商業解決方案。

這個原因有兩方面原因:

第一個原因在於,國內並沒有哪家行業的領頭者敢於率先對基礎設施的普及進行投入,原因就是風險太大為他人作嫁衣。

第 二個原因在於,對於一些小商家、小商城來說是行不通的。其實科技人員總是容易陷入一個誤區,只要技術實現了,那麼一切都好辦了。其實就很多新興技術來說, 在立意上面都是好的,但是在具體操作實施上面可能會出現這些那些的問題,對於任何的小商家來說,任何的改動都是對於現有的管理成本、維護成本以及資金成本 的增加,一旦這麼做,雖然方面了客戶,但是對於商家來說卻是不合適的,他們就不願意做。


2013 O2O元年:移動支付開啟


2013:O2O元年

Online To Offline,即線下商務的機會與網際網路結合在一起,網際網路成為線下交易前臺的O2O。O2O的核心效用在於滿足人們的“3A”消費與支付需求,即人們 希望在任何時候(Anytime)、任何地方(Anywhere)、使用任何可用的方式(Anyway)得到任何想要的零售服務。

O2O作為電商行業一個重要概念,在2012年曾被反覆提及。無論是在坎坷中前行的團購網站,還是天貓、騰訊等電商大佬,都在爭奪O2O這一戰略要地。2012年是摸索O2O的一年,並無明顯突破,2013年才是真正的O2O元年。之所以稱2013為O2O元年,是因為在基於智慧手機上的支付突破和SNS、LBS等應用。

O2O核心在移動支付

從表面上看,O2O的關鍵似乎是網路上的資訊釋出,因為只有網際網路才能把商家資訊傳播得更快,更遠,更廣,可以瞬間聚集強大的消費能力。實際 上,O2O的核心在於線上支付,一旦沒有線上支付功能,O2O中的online不過是替他人做嫁衣罷了。以團購為例,如果沒有能力提供線上支付,僅憑網購 後的自身統計結果同商家結算,結果必須是雙方無法就實際購買的精確人數達成一致而陷入永無休止的糾紛。

線上支付不僅是支付本身的完成,是某次消費得以最終形成的唯一標誌,更是消費資料唯一可靠的考核標準。尤其是對提供online服務的網際網路專 業公司而言,只有使用者在線上完成支付,自身才可能從中獲得效益,從而把準確的消費需求資訊傳遞給offline的商業夥伴。無論B2C,還是C2C,均是 在實現消費者能夠線上支付後,才形成了完整的商業形態。

LBS+SNS+二維碼支付閉環

瞄準O2O市場的新支付解決方案如NFC、二維碼支付、條碼支付、語音支付、搖一搖支付等新技術、新方案層出不窮、爭奇鬥豔。而在這些方案中, 移動網際網路誕生的新機遇是O2O,二維碼將是線上線下的關鍵入口。由LBS+SNS+二維碼支付第一次形成O2O閉環系統:LBS負責將空間地理資訊提供 給交易雙方,SNS負責將消費資訊與體驗與他人分享從而形成規模效應,二維碼支付負責完成支付。

日前,支付寶公司宣佈推出自定義二維碼收款業務,所有支付寶使用者均可通過支付寶免費領取“向我付款”的二維碼消費者只需開啟支付寶手機客戶端的 掃碼功能,並拍下二維碼,即可跳轉至付款頁面,在付款成功後,款項將直接到達二維碼繫結的支付寶賬戶中,收款人也會收到簡訊及客戶端通知。使用者還可以自行 上傳頭像照片並設定收款人姓名,讓二維碼更加個性化。這也成為吸引年輕消費者的一個重要理由。在過去的一個月中,用支付寶收銀成為了許多商家自發的選擇, 目前全國11個城市的“智慧車隊”、南寧“最潮酸嘢店”以及廣東的兩千餘家“美宜佳”門店,已開始支援支付寶二維碼付款。此外,支付寶還在杭州水果攤悄悄 試驗用於識別優惠券的聲波支付方式。採用二維碼、聲波等支付方式,再也不用擔心需要提前準備零鈔現金了,也不用擔心收到假幣了,並可實時掌控銷售額。

而騰訊財付通正在抓住微信使用者突破3億的機會,全力推進財富通與微信的合作。微信將通過二維碼識別,把基於LBS的商家和使用者建立起聯絡,形成 “熟人”形式的SNS,進而指導O2O業務。未來還將與微信搖一搖功能結合,二維碼掃描與支付結合,可實現“即拍即買”,拍攝商品二維碼可進行購買和支 付。微信+財付通將創造出微生活支付理念,一部手機走遍天下將成為現實,財付通將依託微信,有針對性的開發出各種支付方式和場景。這一支付場景和模式將用 於聚餐、KTV等集體活動中。還可通過微信直接向好友轉賬。微生活會員卡可獲得商家優惠,並可及時支付,免去了定位、排隊等環節。目前,微生活與上千個品 牌建立了合作,包括呷哺呷哺、星巴克、上海DQ門店等。使用者使用微信掃描商戶二維碼可開啟“微生活”電子會員卡,獲得商家優惠。

實事上,NFC(Near Field Communication)非接觸式近距離無線通訊技術和ETC( Electronic Toll Collection ) 不停車收費系統可以讓過路過橋、停車、通勤等任何需要支付購買的移動式商品和服務納入O2O,這無疑將電子商務交易客體網貨的邊界拓展至任何合法流通的商 品和服務,為商家營銷創造了無限可能……

瓶頸待突破

O2O模式要大發展,還面臨著三大瓶頸:由於擔憂資金支付安全和個人隱私資訊洩露,手機二維碼、NFC支付的市場客戶認知度較低;新增硬體裝置 採購增加了一定的應用成本;線下商家不願意提供商品和服務的渠道、價格等……這些瓶頸一旦突破,O2O將在2013年大規模爆發。


Android NFC開發例項:學生卡資料讀取

使用硬體:Google Nexus S,北京大學學生卡。(ps:筆者本想使用公交一卡通進行測試,發現手機不能正確識別)

手機作業系統:Android ICS 4.04。

開發時,筆者從Google Play Store上下載了NFC TagInfo軟體進行對比學習。所以我們可以使用任意一張能被TagInfo軟體正確識別的卡做測試。

在Android NFC 應用中,Android手機通常是作為通訊中的發起者,也就是作為各種NFC卡的讀寫器。Android對NFC的支援主要在 android.nfc 和android.nfc.tech 兩個包中。

android.nfc 包中主要類如下:

NfcManager 可以用來管理Android裝置中指出的所有NFCAdapter,但由於大部分Android裝置只支援一個NFC Adapter,所以一般直接呼叫getDefaultAapater來獲取手機中的Adapter。

NfcAdapter 相當於一個NFC介面卡,類似於電腦裝了網路介面卡才能上網,手機裝了NfcAdapter才能發起NFC通訊。

NDEF: NFC Data Exchange Format,即NFC資料交換格式。

NdefMessage 和NdefRecord NDEF 為NFC forum 定義的資料格式。

Tag 代表一個被動式Tag物件,可以代表一個標籤,卡片等。當Android裝置檢測到一個Tag時,會建立一個Tag物件,將其放在Intent物件,然後傳送到相應的Activity。

android.nfc.tech 中則定義了可以對Tag進行的讀寫操作的類,這些類按照其使用的技術型別可以分成不同的類如:NfcA, NfcB, NfcF,以及MifareClassic 等。其中MifareClassic比較常見。

在本次例項中,筆者使用北京大學學生卡進行資料讀取測試,學生卡的TAG型別為MifareClassic。

AndroidManifest.xml:

  1. <manifestxmlns:android="http://schemas.android.com/apk/res/android"
  2.     package="org.reno"
  3.     android:versionCode="1"
  4.     android:versionName="1.0">
  5.     <uses-permissionandroid:name="android.permission.NFC"/>
  6.     <uses-sdkandroid:minSdkVersion="14"/>
  7.     <uses-featureandroid:name="android.hardware.nfc"android:required="true"/>
  8.     <application
  9.         android:icon="@drawable/ic_launcher"
  10.         android:label="@string/app_name">
  11.         <activity
  12.             android:name="org.reno.Beam"
  13.             android:label="@string/app_name"
  14.             android:launchMode="singleTop">
  15.             <intent-filter>
  16.                 <actionandroid:name="android.intent.action.MAIN"/>
  17.                 <categoryandroid:name="android.intent.category.LAUNCHER"/>
  18.             </intent-filter>
  19.             <intent-filter>
  20.                 <actionandroid:name="android.nfc.action.TECH_DISCOVERED"/>
  21.             </intent-filter>
  22.             <meta-data
  23.                 android:name="android.nfc.action.TECH_DISCOVERED"
  24.                 android:resource="@xml/nfc_tech_filter"/>
  25.         </activity>
  26.     </application>
  27. </manifest>

res/xml/nfc_tech_filter.xml:

  1. <resourcesxmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
  2.     <tech-list>
  3.        <tech>android.nfc.tech.MifareClassic</tech>
  4.     </tech-list>
  5. </resources>

當手機開啟了NFC,並且檢測到一個TAG後,TAG分發系統會自動建立一個封裝了NFC TAG資訊的intent。如果多於一個應用程式能夠處理這個intent的話,那麼手機就會彈出一個框,讓使用者選擇處理該TAG的Activity。 TAG分發系統定義了3中intent。按優先順序從高到低排列為:

NDEF_DISCOVERED, TECH_DISCOVERED, TAG_DISCOVERED

當Android裝置檢測到有NFC Tag靠近時,會根據Action申明的順序給對應的Activity 傳送含NFC訊息的 Intent。

此處我們使用的intent-filter的Action型別為TECH_DISCOVERED從而可以處理所有型別為ACTION_TECH_DISCOVERED並且使用的技術為nfc_tech_filter.xml檔案中定義的型別的TAG。

詳情可檢視官方文件說明。下圖為當手機檢測到一個TAG時,啟用Activity的匹配過程。

res/layout/main.xml:

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:layout_width="fill_parent"
  4.     android:layout_height="fill_parent"
  5.     android:orientation="vertical">
  6.     <ScrollView
  7.         android:id="@+id/scrollView"
  8.         android:layout_width="fill_parent"
  9.         android:layout_height="fill_parent"
  10.         android:background="@android:drawable/edit_text">
  11.         <TextView
  12.             android:id="@+id/promt"
  13.             android:layout_width="fill_parent"
  14.             android:layout_height="wrap_content"
  15.             android:scrollbars="vertical"
  16.             android:singleLine="false"
  17.             android:text="@string/info"/>
  18.     </ScrollView>
  19. </LinearLayout>

定義了Activity的佈局:只有一個帶有滾動條的TextView用於顯示從TAG中讀取的資訊。

res/values/strings.xml:

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <resources>
  3.     <stringname="app_name">NFC測試</string>
  4.     <stringname="info">掃描中。。。</string>
  5. </resources>

src/org/reno/Beam.Java

  1. package org.reno;   
  2. import android.app.Activity;   
  3. import android.content.Intent;   
  4. import android.nfc.NfcAdapter;   
  5. import android.nfc.Tag;   
  6. import android.nfc.tech.MifareClassic;   
  7. import android.os.Bundle;   
  8. import android.widget.TextView;   
  9. publicclass Beam extends Activity {   
  10.     NfcAdapter nfcAdapter;   
  11.     TextView promt;   
  12.     @Override
  13.     publicvoid onCreate(Bundle savedInstanceState) {   
  14.         super.onCreate(savedInstanceState);   
  15.         setContentView(R.layout.main);   
  16.         promt = (TextView) findViewById(R.id.promt);   
  17.         // 獲取預設的NFC控制器  
  18.         nfcAdapter = NfcAdapter.getDefaultAdapter(this);   
  19.         if (nfcAdapter == null) {   
  20.             promt.setText("裝置不支援NFC!");   
  21.             finish();   
  22.             return;   
  23.         }   
  24.         if (!nfcAdapter.isEnabled()) {   
  25.             promt.setText("請在系統設定中先啟用NFC功能!");   
  26.             finish();   
  27.             return;   
  28.         }   
  29.     }   
  30.     @Override
  31.     protectedvoid onResume() {   
  32.         super.onResume();   
  33.         //得到是否檢測到ACTION_TECH_DISCOVERED觸發  
  34.         if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(getIntent().getAction())) {   
  35.             //處理該intent  
  36.             processIntent(getIntent());   
  37.         }   
  38.     }   
  39.     //字元序列轉換為16進位制字串  
  40.     private String bytesToHexString(byte[] src) {   
  41.         StringBuilder stringBuilder = new StringBuilder("0x");   
  42.         if (src == null || src.length <= 0) {   
  43.             returnnull;   
  44.         }   
  45.         char[] buffer = newchar[2];   
  46.         for (int i = 0; i < src.length; i++) {   
  47.             buffer[0] = Character.forDigit((src[i] >>> 4) & 0x0F16);   
  48.             buffer[1] = Character.forDigit(src[i] & 0x0F16);   
  49.             System.out.println(buffer);   
  50.             stringBuilder.append(buffer);   
  51.         }   
  52.         return stringBuilder.toString();   
  53.     }   
  54.     /**  
  55.      * Parses the NDEF Message from the intent and prints to the TextView  
  56.      */
  57.     privatevoid processIntent(Intent intent) {   
  58.         //取出封裝在intent中的TAG  
  59.         Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);   
  60.         for (String tech : tagFromIntent.getTechList()) {   
  61.             System.out.println(tech);   
  62.         }   
  63.         boolean auth = false;   
  64.         //讀取TAG  
  65.         MifareClassic mfc = MifareClassic.get(tagFromIntent);   
  66.         try {   
  67.             String metaInfo = "";   
  68.             //Enable I/O operations to the tag from this TagTechnology object.  
  69.             mfc.connect();   
  70.             int type = mfc.getType();//獲取TAG的型別  
  71.             int sectorCount = mfc.getSectorCount();//獲取TAG中包含的扇區數  
  72.             String typeS = "";   
  73.             switch (type) {   
  74.             case MifareClassic.TYPE_CLASSIC:   
  75.                 typeS = "TYPE_CLASSIC";   
  76.                 break;   
  77.             case MifareClassic.TYPE_PLUS:   
  78.                 typeS = "TYPE_PLUS";   
  79.                 break;   
  80.             case MifareClassic.TYPE_PRO:   
  81.                 typeS = "TYPE_PRO";   
  82.                 break;   
  83.             case MifareClassic.TYPE_UNKNOWN:   
  84.                 typeS = "TYPE_UNKNOWN";   
  85.                 break;   
  86.             }   
  87.             metaInfo += "卡片型別:" + typeS + "\n共" + sectorCount + "個扇區\n共"
  88.                     + mfc.getBlockCount() + "個塊\n儲存空間: " + mfc.getSize() + "B\n";   
  89.             for (int j = 0; j < sectorCount; j++) {   
  90.                 //Authenticate a sector with key A.  
  91.                 auth = mfc.authenticateSectorWithKeyA(j,   
  92.                         MifareClassic.KEY_DEFAULT);   
  93.                 int bCount;   
  94.                 int bIndex;   
  95.                 if (auth) {   
  96.                     metaInfo += "Sector " + j + ":驗證成功\n";   
  97.                     // 讀取扇區中的塊  
  98.                     bCount = mfc.getBlockCountInSector(j);   
  99.                     bIndex = mfc.sectorToBlock(j);   
  100.                     for (int i = 0; i < bCount; i++) {   
  101.                         byte[] data = mfc.readBlock(bIndex);   
  102.                         metaInfo += "Block " + bIndex + " : "
  103.                                 + bytesToHexString(data) + "\n";   
  104.                         bIndex++;   
  105.                     }   
  106.                 } else {   
  107.                     metaInfo += "Sector " + j + ":驗證失敗\n";   
  108.                 }   
  109.             }   
  110.             promt.setText(metaInfo);   
  111.         } catch (Exception e) {   
  112.             e.printStackTrace();   
  113.         }   
  114.     }   
  115. }   

關於MifareClassic卡的背景介紹:資料分為16個區(Sector) ,每個區有4個塊(Block) ,每個塊可以存放16位元組的資料。

每個區最後一個塊稱為Trailer ,主要用來存放讀寫該區Block資料的Key ,可以有A,B兩個Key,每個Key 長度為6個位元組,預設的Key值一般為全FF或是0. 由 MifareClassic.KEY_DEFAULT 定義。

因此讀寫Mifare Tag 首先需要有正確的Key值(起到保護的作用),如果鑑權成功,然後才可以讀寫該區資料。

執行效果:


安卓手機NFC標籤使用操作指南


經過幾年的內部研發過程,近場通訊技術,或是更加熟知的NFC技術已經開始壯大了。如果你認為NFC僅僅是用在有非接觸支付終端的咖啡店裡買杯拿鐵咖啡的話,你想的太簡單,因為NFC如今的應用已經十分廣泛了。

索尼已經明確其近期為裝有NFC的Xperia S終端的推廣活動,非接觸式連線已經有了相當廣泛的應用。本篇使用指南將會告訴你如何使用配備有NFC的安卓手持終端。以前只有像三星產的Google Nexus S這樣超牛的手機才配有NFC,如今NFC已經逐漸走向越來越多的裝置中。Galaxy Nexus,諾基亞610,HTC One X仍是本年度的主流產品。而且倫敦奧運會有望使用更多非接觸式支付系統,為NFC這種最新技術提供很多應用機會。

安卓手機NFC標籤使用操作指南

NFC詳細介紹

  1. 1

    我們肯定首先需要一款內建NFC晶片的安卓手機,可用的裝置有Nexus S,Galaxy Nexus,HTC One X,Sony Xperisa以及三星Galaxy S2的其他版本。以後釋出的Galaxy S3很可能配置支援NFC。對於本指南中我們向你展示的,你同樣需要一批未被格式化的NFC標籤。這些可以在像TagsForDriod.com這樣的網店上買到,大概花7歐元就能買到10個標籤,而且還貼有美國郵票。如果你隨便逛逛,說不定還能找到更便宜的。

  2. 2

    NFC標籤

    NFC標籤本身就是小塑料圓盤,大小與十便士的硬幣相仿。標籤並不需要外接電源,只要在上面刷下手機就能使用NFC買點東西,而且攜帶相關資訊以便手機內建NFC晶片讀取。標 簽出廠時都未被格式化,沒有記載任何資訊,就像嶄新的軟盤(呵呵,不知道哪年的東東了)。你需要NFC Task Launcher這款應用向標籤中寫入資訊。該應用不僅能夠使你向標籤中寫入資料-如網址、手機號碼、或是幾個字,還可以將你手機中的某些應用繫結在一 起。到底是什麼應用,馬上揭曉。

    END

步驟/方法

  1. 建立辦公室用標籤

    辦公期間電話鈴聲是現代生活中的小煩惱之一,特別是如果你厝到設定一個特別尷尬的鈴聲。牢記進入辦公室前將手機設定為靜音模式成為你的日常程式之一,但是許多人常常忘記做這些。NFC標籤就能幫你幹這個,它同樣可以在你手機摔出去的時候進行相關設定。

    安卓手機NFC標籤使用操作指南
  2. 在NFCTask Launcher,選中“建立新任務”,你將會看到一系列功能選項,如無線連線聲音、社交媒體與應用程式。在此篇指南中,我們將會建立一個NFC標籤能夠自動設定你的手機以匹配工作環境,所以你應該選中“聲音與音量”,輕點該選項,選中“鈴聲型別”,設定為震動或靜音,隨你自己選,然後選擇“新增此項至任務”。

    安卓手機NFC標籤使用操作指南
  3. 當然,還有其他你想在工作時進行自動設定的選項,可以選擇新增動作,進入後選中WIFI和藍芽連線,輕點WIFI開關,設定為可用。同樣新增該項至任務即可,這樣就可以自動開啟WIFI連線,如果你的辦公室覆蓋有無線網路,當你坐在你桌旁的時候就可以連線至無線網路。

    社交提醒

    也許你的另一半或是家庭成員特別關心你的行蹤。再次輕點動作,選擇選單中的社交媒體選項,這裡就能建立一個向推特賬號傳送提醒確認你已經安全到達,而且你還可以選擇其他社交網路,Foursquare、臉譜或是谷歌緯度實現同樣效果。

    安卓手機NFC標籤使用操作指南
  4. 設立日程

    最後,如果你一天工作繁忙,你希望一坐在桌旁就能開啟日曆應用程式就能看到今天的日程。選擇“新增動作”,進入後選中“啟動應用程式”,輕點“程式”,選中列表中顯示的日曆程式。

    安卓手機NFC標籤使用操作指南
  5. 向標籤中寫入資訊

    當你圓滿完成任務時,可以點選完成,然後儲存。你想賦予任務好聽的名字—工作要好點的話,只要你喜歡都可以。接下來一步救贖向空白標籤中寫入資訊。

    安卓手機NFC標籤使用操作指南
  6. 建立標籤後,你可以把它粘在你的辦公桌上然後每天早上上班的時候在上面貼一下。你也不需要手動切換某一項設定。NFCTask Launcher讀取標籤中的資訊並立刻執行你所設定的所有任務。向空白標籤中寫入任務資訊,輕點完成,然後在標籤上貼過,你就能得到程序完成的確認資訊。另外Galaxy Nexus擁有者可能會在這步收到錯誤提示,因為安卓4.0.3版本系統存在阻止手機內建NFC晶片向空白標籤寫入資訊的bug。

    安卓手機NFC標籤使用操作指南
  7. 無須著急,這裡也有一個對應的應用。下載安裝“NFC標籤讀寫器”就可以使用該程式向標籤中寫入一條資訊,該應用也不需要確保標籤已格式化以備NFC Task Launcher進行讀寫操作。其他手持裝置使用者無需使用此項步驟,還有即將推出的Galaxy Nexus升級至安卓4.0.4系統也已經解決了這個問題。

    看你的工作用標籤做好了,現在我們來看看家庭用標籤。
    建立家庭用標籤

    重複建立工作用標籤的步驟,但這回把所有事項往家庭用方面改了。開啟你的鈴聲,發個你在家的推特等等。你如果想關閉或者你想指示程式連線至家庭網路。把標籤放在靠近門的地方,當你回家開門的時候就可以刷標籤了。

    安卓手機NFC標籤使用操作指南
  8. 或者你可以建立一個“切換”標籤在辦公室和家庭環境之間進行切換。你可以只在辦公時在桌上刷下標籤,無需在家裡刷第二遍。切換系統可以允許你在兩個任務之間進行切換,同時也避免了使用兩張單獨的

    NFC標籤的其他用處

    這裡僅僅是NFC標籤開啟一個應用的例子。你同樣可以使用標籤做些其他的事,如自動開啟手機瀏覽器的網頁,自動更新通訊錄或是實現手機WIFI熱點無縫接入,一刷限制其他裝置接入。

    當然,你會說像Taker這樣的應用程式還可以允許建立基於時間、地理位置和裝置狀態的任務,提供了華麗而便宜的自動控制。某種程度這種說法也沒錯,NFC標籤更加快速而且提供了更高層次的自動控制。你也曉得只要你刷下NFC標籤,所有繫結的任務都會立刻執行。Tasker,怎麼說呢,有點呆板,功能有待改善吧。

    安卓手機NFC標籤使用操作指南 END