Android开发文档学习:NFC(近场通讯)(二)
来源:互联网 发布:mac网络重装系统失败 编辑:程序博客网 时间:2024/04/28 11:00
Android NFC API概述
Android中提供的与NFC相关的较高层的类都包含在android.nfc中,这个包中包含了用于与本地NFC适配器交互的类,用于代表已经识别的标签的类以及用来使用NDEF(Nfc Data Exchange Format )格式的类。
这个包中主要包括了如下几个类:
Android.nfc.tech包主要是包括了一些用于查询特定标签的特性和I/O操作的类。所有的这些类都需要实现TagTechnology接口,它们包括NfcA、NfcB、NfcF、NfcV、IsoDep、Ndef、NdefFormtable、MifareClassic、MifareUltralight这几个类。
Android与NFC相关的类大致就是如上几个,下面我们简单的了解一下如何开始NFC的编程。
根据Android系统所遵循的权限机制,我们需要在AndroidManifest.xml中对需要使用的权限进行声明,这样在程序进行安装时将会提示用户该程序将会使用到哪些设备,让用户来决定是否赋予应用程序相应的权限,Android通过这样的机制来提高系统的安全性。因此当我们在应用程序中需要使用到NFC硬件的时候,我们应当在AndroidManifest.xml中加上:
<
uses-permission
android:name
=
"android.permission.NFC"
/>
另外还需要声明的是能够支持应用程序的最低SDK版本,由于对NFC的支持是在API 10以后才比较完善,因此我们需要使用:
<
uses-sdk
android:minSdkVersion
=
"10"
/>
android的应用程序都是通过上传到Android Market上供用户下载的,我们可以通过加入如下一段声明使我们的应用程序能够被归类到“支持NFC”的手机型号中:
<
uses-feature
android:name
=
"android.hardware.nfc"
android:required
=
"true"
/>1
<
p
style
=
"text-indent: 2em;"
>最后,我们可以通过声明一些intent filter来告诉操作系统该Activity可以处理NFC数据,有三种声明的方式:
1 <
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的声明方式使用在特定的情况下。因此我们需要通过分析具体的应用程序来决定使用哪一种方式。具体怎么选择将在后面提到(标签调度系统)。
这里我们可以看一看一个完整的AndroidManifest.xml例子,取自于NFCDemo。
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
manifest
xmlns:android
=
"http://schemas.android.com/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
>
- Android开发文档学习:NFC(近场通讯)(二)
- Android开发文档学习:NFC(近场通讯)(二)
- Android开发文档学习:NFC(近场通讯)(一)
- Android开发文档学习:NFC(近场通讯)(一)
- Android近场通信---NFC基础(二)
- Android近场通信---高级NFC(二)
- Android近场通信---高级NFC(二)
- Android近场通信---高级NFC(二) .
- Android近场通信---NFC基础(二)
- Android近场通信---高级NFC(二)
- Android近场通信---NFC基础(二)
- Android近场通信---高级NFC(二)
- Android NFC 近场通讯开发全解
- [NFC]Android近场通信---NFC基础(二)
- [NFC] Android近场通信---高级NFC(二)
- Android4.4中的近场通讯(NFC)
- Android NFC 近场通讯开发技术全解
- android应用NFC(1)---Android 2.3.3 近场通信NFC介绍(NFC API的翻译文档)
- 九、Struts2之拦截器
- linux arm9移植
- 第6章 类文件结构--《深入理解 Java 虚拟机》笔记
- Android开发文档学习:NFC(近场通讯)(一)
- 想成为Google工程师?先回答这15个面试问题【这只是一必要条件】(二)
- Android开发文档学习:NFC(近场通讯)(二)
- linux下的C语言开发(线程等待)
- QT工程中的文件介绍(1)----*.pro文件
- 有理想的程序员必须知道的15件事
- 70道经典Android面试题加答案--重要知识点几乎都涉及到了
- 使用GZIP和Zip压缩Java数据流(转)
- Java常用模式小结
- 生成树
- SOAP知识整理