• Android NfcManager 之NFC接入


    NFC:全称是近场通信(Near Field Communication),是一种短距离无线技术

    Android Beam是一个基于近场通信所做的新功能,这个功能可以为其他手机分享你正在使用的功能。 Android升级到4.1后,Android Beam现在可以在两台支持NFC的Android设备间分享照片和视频,还可以与支持NFC的蓝牙设备相连。

    Android NFC同时支持三个主要的操作模式:

    1.设备读/写模式,允许NFC设备的读/写NFC目标设备;

    2.P2P模式,使NFC设备与其他NFC节点交换数据;这种运作模式被使用在Android Beam中;

    3/卡仿真模式,使NFC设备本身作为一个NFC卡。然后模拟NFC卡可以通过一个外部的NFC读写访问,如销售终端NFC点。

    接入流程:

    1.首选NFC依赖硬件,这个就需要权限支持

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

    外获取NFC设备数据需要在<activity/>内添加如下内容

    1. <intent-filter>
    2. <action android:name="android.nfc.action.TECH_DISCOVERED"/>
    3. </intent-filter>
    4. <meta-data
    5. android:name="android.nfc.action.TECH_DISCOVERED"
    6. android:resource="@xml/nfc_tech_filter"/>

    nfc_tech_filter是在res/xml文件下的自定义xml文件:

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <resources>
    3. <tech-list>
    4. <tech>android.nfc.tech.IsoDep</tech>
    5. </tech-list>
    6. <tech-list>
    7. <tech>android.nfc.tech.NfcA</tech>
    8. </tech-list>
    9. </resources>

    2.三种模式的Demo运行

    NFC的数据NfcAdapter来管理的,NfcAdapter有两种途径获取

    NfcManager manager=(NfcManager)getSystemService(Context.NFC_SERVICE);
    NfcAdapter adapter=  manager.getDefaultAdapter();
    

    这是通过NFCmanager获取,

    NfcManger的构造器 也是通过NcfAdapter.getNfcAdapter(Context)获取adapter的实例。

    同理:我们也可以直接获取NfcAdapter,不通过NfcManger来获取。

    NcfAdapter adapter=NfcAdapter.getDefaultAdapter(Context context)

     这个adapter其实也是需要通过NfcManager来获取,直接调用静态方法,针对不熟悉getSystemService来说,可以直接使用封装现成的。

    adapter的内部会有一个:

    static HashMap<Context, NfcAdapter> sNfcAdapters = new HashMap(); //guard by NfcAdapter.class

    ,所以NFC是独立于Activity,因为adapter内部有一个静态变量,会把当前山下文使用的nfcadapter缓存起来。

  • 相关阅读:
    想要精通算法和SQL的成长之路 - 最长回文子序列
    搭建Atlas2.2.0 集成CDH6.3.2 生产环境+kerberos
    曼哈顿距离和-打印菱形
    SQL Dblink SQL
    软考视频,系统架构师视频、系统分析师视频、软件设计师视频,试卷,真题
    2022-2028全球监控光电二极管(MPD)行业调研及趋势分析报告
    rabbitMQ:绑定Exchange发送和接收消息(fanout)
    太阳底下无新事,元宇宙能否更上层楼?
    软件评测师之总线
    JavaScript面试刷题指南
  • 原文地址:https://blog.csdn.net/qq36246172/article/details/119185812