1,android NFC 初認(rèn)識(shí)

NFC(Near Field Communication店归,近場(chǎng)通信),是一種數(shù)據(jù)傳輸技術(shù)揍愁。
NFC有3種工作模式:
1柏腻,讀卡器模式(Reader/writer mode)
--NFC設(shè)備讀取帶有nfc芯片的標(biāo)簽
2,仿真卡模式(Card Emulation Mode)
--NFC設(shè)備把自己模擬成nfc標(biāo)簽泉瞻,如手機(jī)成為公交卡
3脉漏, 點(diǎn)對(duì)點(diǎn)模式(P2P mode)
--如手機(jī)間傳送文件

android 在api =9時(shí)開始支持NFC功能,在api=14的時(shí)候開始可以借助藍(lán)牙傳輸大量的數(shù)據(jù)袖牙;Android SDK API主要支持NFC論壇標(biāo)準(zhǔn)(Forum Standard)侧巨,這種標(biāo)準(zhǔn)
被稱為NDEF(NFC Data Exchange Format,NFC數(shù)據(jù)交換格式)鞭达。

Android SDK API支持如下3種NDEF數(shù)據(jù)的操作司忱。
1),從NFC標(biāo)簽讀取NDEF格式的數(shù)據(jù)畴蹭。
2)坦仍,向NFC標(biāo)簽寫入NDEF格式的數(shù)據(jù)。
3)叨襟,通過(guò)Android Beam技術(shù)將NDEF數(shù)據(jù)發(fā)送到另一部NFC設(shè)備繁扎。

如果Android手機(jī)帶有NFC功能,并且NFC功能是開啟的糊闽,當(dāng)手機(jī)靠近帶有NFC芯片的標(biāo)簽時(shí)梳玫,系統(tǒng)自動(dòng)捕獲動(dòng)作,需找最適合的activity(啟動(dòng)包含這個(gè)activity的應(yīng)用)去處理右犹,匹配規(guī)則在Intent中的3種action:
1)提澎,ACTION_NDEF_DISCOVERED:當(dāng)系統(tǒng)檢測(cè)到tag中含有NDEF格式的數(shù)據(jù)時(shí),且系統(tǒng)中有activity聲明可以接受包含NDEF數(shù)據(jù)的Intent的時(shí)候念链,系統(tǒng)會(huì)優(yōu)先發(fā)出這個(gè)action的intent虱朵。
2),ACTION_TECH_DISCOVERED:當(dāng)沒有任何一個(gè)activity聲明自己可以響應(yīng)
ACTION_NDEF_DISCOVERED時(shí)钓账,系統(tǒng)會(huì)嘗試發(fā)出TECH的intent.即便你的tag中所包含的數(shù)據(jù)是NDEF的碴犬,但是如果這個(gè)數(shù)據(jù)的MIME type或URI不能和任何一個(gè)activity所聲明的想吻合,系統(tǒng)也一樣會(huì)嘗試發(fā)出tech格式的intent,而不是NDEF.
3),ACTION_TAG_DISCOVERED:當(dāng)系統(tǒng)發(fā)現(xiàn)前兩個(gè)intent在系統(tǒng)中無(wú)人會(huì)接受的時(shí)候锁荔,就只好發(fā)這個(gè)默認(rèn)的TAG類型的

除了帶有匹配的聲明還不夠滩届,還有賦予權(quán)限:
<uses-permission android:name="android.permission.NFC" />
然后是sdk支持: API>=9 ,<uses-sdk android:minSdkVersion="9"/>
如果添加了
<uses-feature android:name="android.hardware.nfc" android:required="true" />塞关,
那么只有帶有NFC功能的手機(jī)才能安裝這個(gè)應(yīng)用优妙。

如果手機(jī)中有多個(gè)activity(多個(gè)應(yīng)用)響應(yīng)這個(gè)action逻淌,android系統(tǒng)會(huì)列出所有的應(yīng)用供你選擇惜纸,為了提高匹配的準(zhǔn)確性跳纳,google提供了3種過(guò)濾條件

1)忍饰,過(guò)濾ACTION_TAG_DISCOVERED:
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
這個(gè)最簡(jiǎn)單,但優(yōu)先級(jí)低寺庄,最后才被處理艾蓝;

2:過(guò)濾ACTION_NDEF_DISCOVERED:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain" />
</intent-filter>
其中最重要的應(yīng)該算是data的mimeType類型了,這個(gè)定義的越準(zhǔn)確斗塘,intent指向你這個(gè)activity的成功率就越高赢织,否則系統(tǒng)可能不會(huì)發(fā)出你想要的NDEF intent了。

3:過(guò)濾ACTION_TECH_DISCOVERED:
你首先需要在你的<project-path>/res/xml下面創(chuàng)建一個(gè)過(guò)濾規(guī)則文件馍盟。名字任取于置,比如可以叫做nfc_tech_filter.xml。這個(gè)里面定義的是nfc實(shí)現(xiàn)的各種標(biāo)準(zhǔn)贞岭,每一個(gè)nfc卡都會(huì)符合多個(gè)不同的標(biāo)準(zhǔn)八毯,個(gè)人理解為這些標(biāo)準(zhǔn)有些相互之間也是兼容的。你可以在檢測(cè)到nfc標(biāo)簽后使用getTechList()方法來(lái)查看你所檢測(cè)的tag到底支持哪些nfc標(biāo)準(zhǔn)瞄桨。

一個(gè)nfc_tech_filter.xml中可以定義多個(gè)<tech-list>結(jié)構(gòu)組话速。每一組代表我聲明我只接受同時(shí)滿足這些標(biāo)準(zhǔn)的nfc標(biāo)簽。比如A組表示讲婚,只有同時(shí)滿足IsoDep,NfcA,NfcB,NfcF這四個(gè)標(biāo)準(zhǔn)的nfc標(biāo)簽的intent才能進(jìn)入尿孔。A與B組之間的關(guān)系就是只要滿足其中一個(gè)就可以了俊柔。換句話說(shuō)筹麸,你的nfc標(biāo)簽技術(shù),滿足A的聲明也可以雏婶,滿足B的聲明也可以物赶。

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<tech-list> --------------------------------A組
<tech>android.nfc.tech.IsoDep</tech> <tech>android.nfc.tech.NfcA</tech> <tech>android.nfc.tech.NfcB</tech> <tech>android.nfc.tech.NfcF</tech>
</tech-list>

<tech-list>-----------------------------------------B組
<tech>android.nfc.tech.NfcV</tech> <tech>android.nfc.tech.Ndef</tech> <tech>android.nfc.tech.NdefFormatable</tech> <tech>android.nfc.tech.MifareClassic</tech> <tech>android.nfc.tech.MifareUltralight</tech>
</tech-list>
</resources>

在androidManifest文件中聲明xml過(guò)濾的舉例如下
<activity>
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED"/>
</intent-filter>
<meta-data android:name="android.nfc.action.TECH_DISCOVERED" android:resource="@xml/nfc_tech_filter" />-------------這個(gè)就是你的資源文件名
</activity>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市留晚,隨后出現(xiàn)的幾起案子酵紫,更是在濱河造成了極大的恐慌,老刑警劉巖错维,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奖地,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡赋焕,警方通過(guò)查閱死者的電腦和手機(jī)参歹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)隆判,“玉大人犬庇,你說(shuō)我怎么就攤上這事僧界。” “怎么了臭挽?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵捂襟,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我欢峰,道長(zhǎng)葬荷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任赤赊,我火速辦了婚禮闯狱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘抛计。我一直安慰自己哄孤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布吹截。 她就那樣靜靜地躺著瘦陈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪波俄。 梳的紋絲不亂的頭發(fā)上晨逝,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音懦铺,去河邊找鬼捉貌。 笑死,一個(gè)胖子當(dāng)著我的面吹牛冬念,可吹牛的內(nèi)容都是我干的趁窃。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼急前,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼醒陆!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起裆针,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤刨摩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后世吨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體澡刹,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年耘婚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了罢浇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡边篮,死狀恐怖己莺,靈堂內(nèi)的尸體忽然破棺而出奏甫,到底是詐尸還是另有隱情,我是刑警寧澤凌受,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布阵子,位于F島的核電站,受9級(jí)特大地震影響胜蛉,放射性物質(zhì)發(fā)生泄漏挠进。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一誊册、第九天 我趴在偏房一處隱蔽的房頂上張望领突。 院中可真熱鬧,春花似錦案怯、人聲如沸君旦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)金砍。三九已至,卻和暖如春麦锯,著一層夾襖步出監(jiān)牢的瞬間恕稠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工扶欣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鹅巍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓料祠,卻偏偏與公主長(zhǎng)得像骆捧,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子术陶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容