久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Android開發(fā)文檔學(xué)習(xí):NFC(近場(chǎng)通訊)(二)

 開花結(jié)果 2011-08-03

Android NFC API概述

Android中提供的與NFC相關(guān)的較高層的類都包含在android.nfc中,這個(gè)包中包含了用于與本地NFC適配器交互的類,用于代表已經(jīng)識(shí)別的標(biāo)簽的類以及用來(lái)使用NDEF(Nfc Data Exchange Format )格式的類,。

這個(gè)包中主要包括了如下幾個(gè)類:

類名

描述

NfcManager

NFC的一個(gè)高級(jí)管理類,,用于枚舉出本機(jī)的NFC適配器。由于大多數(shù)的設(shè)備都只提供一個(gè)NFC適配器,,因此在大多數(shù)情況下我們可以通過(guò)getDefaultAdapter(Context)這個(gè)靜態(tài)的方法來(lái)得到本地的NFC適配器的引用,。

NfcAdapter

該類代表了本地的NFC適配器。它定義了如何將NFC標(biāo)簽的信息傳達(dá)給Activity的intent,,并且提供了用于注冊(cè)前臺(tái)標(biāo)簽調(diào)度和前臺(tái)的數(shù)據(jù)推送的方法,。前臺(tái)的基于NDEF的數(shù)據(jù)推送是目前Android僅提供的點(diǎn)到點(diǎn)支持方式。

NdefMessage and NdefRecord

NDEF是由NFC論壇所定義的一種數(shù)據(jù)結(jié)構(gòu),,它是為了高效率的在NFC標(biāo)簽上存儲(chǔ)數(shù)據(jù),,例如文本、url或者其他的數(shù)據(jù)格式,。NdefMessage是用于封裝需要傳輸或讀取的數(shù)據(jù)的容器,。而每一個(gè)NdefMessage包含了0個(gè)或若干個(gè)NdefRecord。每個(gè)NDEF的記錄都包括一種有效類型的數(shù)據(jù),。在一條NDEF消息中的第一個(gè)記錄的作用是向android的Activity調(diào)度一個(gè)標(biāo)簽,。

Tag

該類代表了一個(gè)無(wú)源的NFC標(biāo)簽。這種標(biāo)簽可以來(lái)自于各種物體,,比如通常所用的物理標(biāo)簽,、卡片、鑰匙卡或者也可以是一部可以仿真成NFC標(biāo)簽的電話機(jī),。當(dāng)NFC識(shí)別設(shè)備發(fā)現(xiàn)了一個(gè)NFC標(biāo)簽,,系統(tǒng)就會(huì)創(chuàng)建一個(gè)NFC Tag對(duì)象并在對(duì)象中封裝一個(gè)intent。然后NFC的標(biāo)簽調(diào)度系統(tǒng)將會(huì)負(fù)責(zé)將這些intent調(diào)度到適當(dāng)?shù)腁ctivity中,??梢酝ㄟ^(guò) getTechList() 方法來(lái)決定使用適合該Tag對(duì)象的讀寫標(biāo)準(zhǔn)并且可以使用 android.nfc.tech包所提供的相關(guān)類來(lái)創(chuàng)建與此相關(guān)的 TagTechnology 對(duì)象。

 

   Android.nfc.tech包主要是包括了一些用于查詢特定標(biāo)簽的特性和I/O操作的類,。所有的這些類都需要實(shí)現(xiàn)TagTechnology接口,,它們包括NfcA、NfcB,、NfcF,、NfcV、IsoDep,、Ndef,、NdefFormtable、MifareClassic,、MifareUltralight這幾個(gè)類,。

Android與NFC相關(guān)的類大致就是如上幾個(gè),,下面我們簡(jiǎn)單的了解一下如何開始NFC的編程。

根據(jù)Android系統(tǒng)所遵循的權(quán)限機(jī)制,,我們需要在AndroidManifest.xml中對(duì)需要使用的權(quán)限進(jìn)行聲明,,這樣在程序進(jìn)行安裝時(shí)將會(huì)提示用戶該程序?qū)?huì)使用到哪些設(shè)備,讓用戶來(lái)決定是否賦予應(yīng)用程序相應(yīng)的權(quán)限,,Android通過(guò)這樣的機(jī)制來(lái)提高系統(tǒng)的安全性,。因此當(dāng)我們?cè)趹?yīng)用程序中需要使用到NFC硬件的時(shí)候,我們應(yīng)當(dāng)在AndroidManifest.xml中加上:
        <uses-permission android:name="android.permission.NFC"/>

另外還需要聲明的是能夠支持應(yīng)用程序的最低SDK版本,,由于對(duì)NFC的支持是在API 10以后才比較完善,,因此我們需要使用:
         <uses-sdk android:minSdkVersion="10"/>

android的應(yīng)用程序都是通過(guò)上傳到Android Market上供用戶下載的,我們可以通過(guò)加入如下一段聲明使我們的應(yīng)用程序能夠被歸類到“支持NFC”的手機(jī)型號(hào)中:

<uses-feature android:name="android.hardware.nfc" android:required="true" />

<p style="text-indent: 2em;">最后,,我們可以通過(guò)聲明一些intent filter來(lái)告訴操作系統(tǒng)該Activity可以處理NFC數(shù)據(jù),,有三種聲明的方式:

        <intent-filter>

      <action android:name="android.nfc.action.NDEF_DISCOVERED"/>

      <data android:mimeType="mime/type" />

    </intent-filter>

  

        <intent-filter>

      <action android:name="android.nfc.action.TECH_DISCOVERED"/>

      <meta-data android:name="android.nfc.action.TECH_DISCOVERED"

           android:resource="@xml/nfc_tech_filter.xml" />

    </intent-filter>

  

    <intent-filter>

      <action android:name="android.nfc.action.TAG_DISCOVERED"/>

    </intent-filter>

這三種intent filter的聲明方式使用在特定的情況下。因此我們需要通過(guò)分析具體的應(yīng)用程序來(lái)決定使用哪一種方式,。具體怎么選擇將在后面提到(標(biāo)簽調(diào)度系統(tǒng)),。

這里我們可以看一看一個(gè)完整的AndroidManifest.xml例子,取自于NFCDemo,。

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas./apk/res/android"

    package="com.example.android.nfc">

    <uses-permission android:name="android.permission.NFC" />

    <uses-permission android:name="android.permission.CALL_PHONE" />

    <application

        android:icon="@drawable/icon"

        android:label="@string/app_name">

    <activity android:name=".simulator.FakeTagsActivity"

        android:theme="@android:style/Theme.NoTitleBar">

        <intent-filter>

            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />

        </intent-filter>

    </activity>

        <activity android:name="TagViewer"

            android:theme="@android:style/Theme.NoTitleBar">

            <intent-filter>

                <action android:name="android.nfc.action.TAG_DISCOVERED"/>

                <category android:name="android.intent.category.DEFAULT"/>

            </intent-filter>

        </activity>

    </application>

    <uses-sdk android:minSdkVersion="9" />

    <uses-feature android:name="android.hardware.nfc" android:required="true" />

</manifest>

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多