我找到了两种让 Android应用检测和处理NFC标签的方法:

> NfcAdapter.enableReaderMode(活动,回调,标志,附加组件),然后在回调中接收标签信息.
> NfcAdapter.enableForegrounddispatch(activity,intent,filters,techLists)然后在onNewIntent(intent)活动方法中接收标记信息.

我目前使用第二种方法,但是,我最近发现了enableReaderMode方法,并想知道是否更好地使用它来处理NFC标签.

那么enableReaderMode和enableForegrounddispatch有什么区别?

解决方法

前台调度系统

自Android 2.3.3(基本上是Android NFC的开始)以来,forground dispatch系统(NfcAdapter.enableForegrounddispatch())存在.因此,所有具有NFC功能的Android设备都支持此方法.

前台调度系统用于在处理NFC发现事件(即,从对等设备接收的已发现的NFC标签和NDEF消息)中给出当前处于前景优先级的活动.这意味着即使另一个应用程序(通过AndroidManifest.xml中的意图过滤器)注册了特定标签类型或NDEF数据,NFC事件仍将传递给前台活动而不是其他活动.因此,该方法不会改变Android侦听NFC设备(NFC标签,P2P设备)的方式,只会改变处理已发现设备的优先级.

读者模式API

读者模式API(NfcAdapter.enableReaderMode())是在Android 4.4中引入的.因此,并非所有具有NFC功能的Android设备都支持此方法.

与前台调度系统相反,阅读器模式API确实改变了Android侦听NFC设备的方式. reader-mode API禁用点对点模式.例如,这允许您发现具有对等模式的其他设备的卡仿真模式以及同时启用的卡仿真模式(如Android HCE的情况). (通常,这样的设备会被发现为点对点设备,而Android应用程序将无法访问卡仿真功能.)

此外,您可以更改NFC阅读器模式的特定参数,例如,您可以

>定义NFC读取器轮询的标签技术,>通过向标签发送某个命令序列并检查是否仍然收到响应来定义Android测试标签是否仍然存在的时间间隔,>阻止Android自动向标签发送命令,以测试标签是否包含NDEF消息,>阻止Android在标记发现时播放声音.

android – enableReaderMode和enableForegroundDispatch有什么区别?的更多相关文章

  1. 在手机在Android中睡觉时处理NFC

    我想知道手机睡觉时是否可以处理NFC?似乎没有意图启动,所以我想系统关闭了nfc?解决方法不会.当设备的显示屏关闭时,不会生成和发送意图.如果您有NexusS,请尝试标记某些内容并观察catlog,您将在手机上找不到任何内容.我认为这种行为非常合理.从今天起,我们周围的许多东西都有RFID标签,如果即使屏幕关闭也可以触发NFC应用程序,可能会发生意外情况.

  2. android – nexus的NFC / RFID入门

    NexusSNFC/RFID入门.有人可以提供任何指导吗?我有兴趣使用nexus的NFC/RFID硬件创建一些家庭酿造演示.我想我需要找到合适的标签,以及如何将网址编码为nexus可以通过它的标签应用程序读取的标签.不确定iso14443标签或mifare等nexus是否支持所有libnfc?如果我root设备可以访问写入功能吗?v=eu7fQsPjDls).该URL是使用其他设备编写的.

  3. android – 我的应用程序如何找出启用了哪种NFC模式?

    我发现Android设备支持三种NFC模式:读写器,P2P和卡模拟.我的应用程序可以检查当前启用的模式吗?

  4. android – 如何将外部NFC读卡器连接到平板电脑

    现在我正在使用平板电脑安装操作系统Android2.3.3而不是NFC手机,所以我需要将外部读卡器连接到平板电脑.请告诉我我应该选择哪种读卡器以及将读卡器连接到平板电脑所需的任何驱动程序.内置的NFC库是否支持该读卡器?提前致谢.解决方法我找到了答案,ACS现在为他们的读者提供了android库和示例应用程序.你可以找到库here和android支持的读者的一些信息和视频演示是here.唯一的问题是ACS安卓库只支持Android3.1及以上版本.希望它能帮助你.如果您还有问题请随时询问..

  5. android – enableReaderMode和enableForegroundDispatch有什么区别?

    我找到了两种让Android应用检测和处理NFC标签的方法:>NfcAdapter.enableReaderMode(活动,回调,标志,附加组件),然后在回调中接收标签信息.>NfcAdapter.enableForegrounddispatch(activity,intent,filters,techLists)然后在onNewIntent(intent)活动方法中接收标记信息.我目前使用第二种

  6. android – 如何知道标签是否存在?

    我认为有必要插入一个按钮来检查标签是否存在.我在我的活动中添加了“前台调度系统”,但是我仍然不明白如果标签存在与否,如何显示消息,在使用读写方法之前要检查什么?解决方法扫描新的NFC标签后立即调用onNewIntent.例如,如果您想要写入每个扫描的标记,则onNewIntent()方法将如下所示:你的writeTag方法当然还没有使用它给出的字符串,但你可能知道.如果您想要保持最新的布尔值以检查可用标记,请执行以下操作:

  7. android – NfcAdapter.getDefaultAdapter(this)在模拟器中返回null

    解决方法你真的不能对模拟器和NFC做任何有趣的事情.您不希望使用TAG_disCOVERED操作,因为这是最后的操作.在真实设备上生成的意图不能像在NFCDemo演示中那样伪造.在2.3.3中更好地支持NFC之前,NFCDemo以2.3发布.这太糟糕了.也许未来会有一些选择,但现在我们都不得不购买具备NFC功能的NFC设备.

  8. android – 是否可以从React App访问NFC功能

    我将使用ReactNative为Android构建一个应用程序,我很想知道我是否可以访问NFC功能.我可以看到与Cordova相关的东西,但就我对原生移动网络应用程序的新手而言,我想进一步搜索.谢谢你的时间.解决方法我们最近在GitHub上发布了react-native-nfc.该项目的目标是支持ReactNative中的NFC操作.

  9. 在android教程中将数据写入NFC标签

    我想开发一个基于AndroidNFC的应用程序,我想在其中读取和写入NFC标签中的数据.这该怎么做?

  10. android – 如何启用NFC设置

    我能够在我的NFC演示应用程序中阅读和阅读,但我需要检查设置菜单中的NFC选项是否已启用.如果它没有启用我想引导用户进入设置菜单类似于NXP的NFCTagWriter.在我的应用程序中,我使用以下SDK版本我无法检查设置是否已启用.解决方法TNR是正确的,但是请注意,从Android版本16开始,NFC有一个更具体的设置操作:

随机推荐

  1. bluetooth-lowenergy – Altbeacon库无法在Android 5.0上运行

    昨天我在Nexus4上获得了Android5.0的更新,并且altbeacon库停止了检测信标.似乎在监视和测距时,didEnterRegion和didRangeBeaconsInRegion都没有被调用.即使RadiusNetworks的Locate应用程序现在表现不同,一旦检测到信标的值,它们就不再得到更新,并且通常看起来好像信标超出了范围.我注意到的一点是,现在在logcat中出现以下行“B

  2. android – react-native动态更改响应者

    我正在使用react-native进行Android开发.我有一个视图,如果用户长按,我想显示一个可以拖动的动画视图.我可以使用PanResponder实现这一点,它工作正常.但我想要做的是当用户长按时,用户应该能够继续相同的触摸/按下并拖动新显示的Animated.View.如果您熟悉Google云端硬盘应用,则它具有类似的功能.当用户长按列表中的任何项目时,它会显示可拖动的项目.用户可以直接拖

  3. android – 是否有可能通过使用与最初使用的证书不同的证书对其进行签名来发布更新的应用程序

    是否可以通过使用与最初使用的证书不同的证书进行签名来发布Android应用程序的更新?我知道当我们尝试将这样的构建上传到市场时,它通常会给出错误消息.但有没有任何出路,比如将其标记为主要版本,指定市场中的某个地方?解决方法不,你不能这样做.证书是一种工具,可确保您是首次上传应用程序的人.所以总是备份密钥库!

  4. 如何检测Android中是否存在麦克风?

    ..所以我想在让用户访问语音输入功能之前检测麦克风是否存在.如何检测设备上是否有麦克风.谢谢.解决方法AndroidAPI参考:hasSystemFeature

  5. Android – 调用GONE然后VISIBLE使视图显示在错误的位置

    我有两个视图,A和B,视图A在视图B上方.当我以编程方式将视图A设置为GONE时,它将消失,并且它正下方的视图将转到视图A的位置.但是,当我再次将相同的视图设置为VISIBLE时,它会在视图B上显示.我不希望这样.我希望视图B回到原来的位置,这是我认为会发生的事情.我怎样才能做到这一点?编辑–代码}这里是XML:解决方法您可以尝试将两个视图放在RelativeLayout中并相对于彼此设置它们的位置.

  6. android – 获得一首歌的流派

    我如何阅读与歌曲相关的流派?我可以读这首歌,但是如何抓住这首歌的流派,它存放在哪里?解决方法检查此代码:

  7. android – 使用textShadow折叠工具栏

    我有一个折叠工具栏的问题,在展开状态我想在文本下面有一个模糊的阴影,我使用这段代码:用:我可以更改textColor,它可以工作,但阴影不起作用.我为阴影尝试了很多不同的值.是否可以为折叠文本投射阴影?

  8. android – 重用arm共享库

    我已经建立了armarm共享库.我有兴趣重用一个函数.我想调用该函数并获得返回值.有可能做这样的事吗?我没有任何头文件.我试过这个Android.mk,我把libtest.so放在/jni和/libs/armeabi,/lib/armeabi中.此时我的cpp文件编译,但现在是什么?我从objdump知道它的名字编辑:我试图用这个android.mk从hello-jni示例中添加prebuild库:它工作,但libtest.so相同的代码显示以下错误(启动时)libtest.so存在于libhello-j

  9. android – 为NumberPicker捕获键盘’Done’

    我有一个AlertDialog只有一些文本,一个NumberPicker,一个OK和一个取消.(我知道,这个对话框还没有做它应该保留暂停和恢复状态的事情.)我想在软键盘或其他IME上执行“完成”操作来关闭对话框,就像按下了“OK”一样,因为只有一个小部件可以编辑.看起来处理IME“Done”的最佳方法通常是在TextView上使用setonEditorActionListener.但我没有任何Te

  10. android – 想要在调用WebChromeClient#onCreateWindow时知道目标URL

    当我点击一个带有target=“_blank”属性的超链接时,会调用WebChromeClient#onCreateWindow,但我找不到新的窗口将打开的新方法?主页url是我唯一能知道的东西?我想根据目标网址更改应用行为.任何帮助表示赞赏,谢谢!

返回
顶部