4.NFC前台调度系统
使用目的:当前Activity能直接响应NFC标签,而不需要用户在choose所有能处理的Activity。
使用步骤:
第一步:在onCreate()方法中,创建一个PendingIntent对象
// NFC前台调度系统
private PendingIntent pendingIntent = null;
...
......
// 初始化PendingIntent,当有NFC设备连接上的时候,就交给当前Activity处理
pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
第二步:onPause(),onResume(),onNewIntent()方法中添加如下代码。
@Override
protected void onPause() {
if (nfcAdapter != null)
nfcAdapter.disableForegroundDispatch(this);
super.onPause();
} @Override
protected void onResume() {
if (nfcAdapter != null)
nfcAdapter.enableForegroundDispatch(this, pendingIntent, filters, tenchlists);
super.onResume();
} @Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
// 当前app正在前端界面运行,这个时候有intent发送过来,那么系统就会调用onNewIntent回调方法,将intent传送过来
// 我们只需要在这里检验这个intent是否是NFC相关的intent,如果是,就调用处理方法
Log.d("h_bl", "onNewIntent");
praseIntent(intent); //处理Intent
}
第三部分:关键步骤:onResume()函数中有两个参数还未补充:filters和techLists。
void android.nfc.NfcAdapter.enableForegroundDispatch(Activity activity, PendingIntent intent, IntentFilter[] filters, String[][] techLists)
filters:the IntentFilters to override dispatching for, or null to always dispatch。
前台调度系统activity能过滤的nfc标签,重写能调度的nfc标签过滤器,或者总是填null。
techLists:the tech lists used to perform matching for dispatching of the ACTION_TECH_DISCOVERED intent
应用程序希望处理的NFC标签技术的数组。-- 即要处理的NFC标签技术的数组(获取了,可以不处理,对这个标签没反应)。
If you pass null for both the filters and techLists parameters that acts a wild card and will cause the foreground activity to receive all tags via the ACTION_TAG_DISCOVERED intent.
如果filters和techLists参数均为空,则会导致前台activity通过ACTION_TAG_DISCOVERED intent接收所有的标签。
该两个参数的定义在onCreate()中定义:
public String[][] tenchlists;
public IntentFilter[] filters;
...
.......
// 声明前台activity能处理的NFC标签技术的数组
tenchlists = new String[][] { { IsoDep.class.getName() }, { NfcV.class.getName() }, { NfcF.class.getName() }, };
// 前台activity过滤获得所有的ACTION_TECH_DISCOVERED的intent
try {
filters = new IntentFilter[] { new IntentFilter(NfcAdapter.ACTION_TECH_DISCOVERED, "*/*") };
} catch (MalformedMimeTypeException e1) {
e1.printStackTrace();
4.NFC前台调度系统的更多相关文章
- Android NFC近场通信2——NFC标签调度
		上面一篇文章简单介绍了NFC的背景和技术应用,今天主要是讲解一下NFC如何发起通信和标签通信(主要是翻译android官网的资料,中间加入个人心得). NFC总是在一个发起者和一个被动目标之间发生.发 ... 
- 黑马程序员:Java编程_7K面试题之银行业务调度系统
		=========== ASP.Net+Android+IOS开发..Net培训.期待与您交流!=========== 模拟实现银行业务调度系统逻辑,具体需求如下: 银行内有6个业务窗口,1 - 4号 ... 
- 黑马程序员_JAVA之银行业务调度系统
		------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1.模拟实现银行业务调度系统逻辑,具体需求如下: 银行内有6个业务窗口,1 - 4号窗口为普通窗 ... 
- Java——银行业务调度系统
		 需求: 模拟实现银行业务调度系统逻辑,具体需求如下: Ø 银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口. Ø 有三种对应类型的客户:VIP客户,普通 ... 
- Hadoop 开源调度系统zeus(二)
		紧跟之前Hadoop 开源调度系统zeus(一) 本节主要介绍一下zeus的架构: 先给一个zeus的架构图 无论Master还是Worker都有一套WEB UI,无论从哪个上面去看,看到的结果都是一 ... 
- 又一道软通动力7K月薪面试题——银行业务调度系统
		后期补充:网友对我诟病最多的就是我帮学生做面试题,说这是小偷和骗子行为,在此,我对自己给学员做面试题做出例如以下解释: (1)学员拿着面试题来找老师,学生也事先思考和尝试后实在没有办法,又求职心切才 ... 
- DS Scheduler 0.7 发布,Linux 调度系统 - 开源中国社区
		DS Scheduler 0.7 发布,Linux 调度系统 - 开源中国社区 DS Scheduler 0.7 发布,Linux 调度系统 
- 脑残手贱:被NFS祸害的调度系统
		建议:任何时候,都要三思而后行!!! 事请的缘由 系统中采用slurm调度系统来进行并行计算.但是在GPU节点上,无论如何都无法启动slurmd,报插件初始化错误的故障. 因此需要编译新的munge和 ... 
- 【SmartOS】轻量级多任务调度系统
		SmartOS是一个完全由新生命团队设计的嵌入式操作系统,主要应用于智能家居.物联网.工业自动化控制等领域. ARM Cortex-M系列微处理器几乎全都做成单核心,对于业务逻辑较复杂的物联网就显得难 ... 
随机推荐
- PEAR DB 初学笔记
			1.数据查询 i. DB_common::getAll() DB_FETCHMODE_ORDERED . DB_FETCHMODE_ASSOC . DB_FETCHMODE_OBJECT ii. DB ... 
- android配置开发环境
			1.下载Java SE并安装. 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 配置环境变量 我的电脑- ... 
- linux安装软件的几种方法
			一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd soft.version.rpm所在 ... 
- Java内存模型与线程_学习笔记
			深入理解java虚拟机: 1.java内存模型 java虚拟机规范中试图定义一种Java内存模型.Java Memory Model(JMM) 1.1 主内存与工作内存 java内存模型规定所有的变量 ... 
- sql server 中使用 LIKE 语句 SqlParameter 使用
			原本写的 select * from table where name like '%@searchStr%' 怎么执行都不对,想想 参数是不能加 引号的 于是改为select * from tab ... 
- oracle怎么查看一个表或一个索引占用多少空间
			很多时候我们想知道一个表或一个索引占用多少M的空间,以下脚本就是满足这个要求的,记住替换其中的内容. SELECT owner, segment_name, SUM(bytes)/1024/1024 ... 
- if else以及大于、小于、等于逻辑表达式
			大多数情况下,可以使用测试命令来对条件进行测试.比如可以比较字符串.判断文件是否存在及是否可读等,通常用"[]"来表示条件测试.注意这里的空格很重要.要确保方括号的空格. if . ... 
- eclipse搭建ssm框架的maven的工程
			版本:eclipse:Indigo Service Release 2. jdk :jdk1.7.0_03. maven:apache-maven-3.3.3 . 上面的3个东西 先下载下来.然后运 ... 
- tcp nio 远程主机强迫关闭了一个现有的连接
			import java.io.IOException; import java.net.InetSocketAddress; import java.net.ServerSocket; import ... 
- md5 加解密
			using JGDJWeb.Model; using System; using System.Collections.Generic; using System.IO; using System.L ... 
