• 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缓存起来。

  • 相关阅读:
    C++行为型模式-职责链模式
    一文读懂 Spring Bean 的生命周期
    OpenCV 13(模版匹配和霍夫变换)
    068:mapboxGL绘制多边形,过滤获取选中的点的集合信息
    通过无线自制串口模块连接SpeedyBee或BetaFlightConfigurator
    每头奶牛谋定身份 国稻种芯-泰兴:牧场智能化的饲养管理
    大二学生基于Html+Css+javascript的网页制作——动漫设计公司响应式网站模板 (10个页面)
    使用 Spring Security控制会话
    chatgpt赋能python:Python操作表格的全面指南
    java Spring Boot 将日志写入文件中记录
  • 原文地址:https://blog.csdn.net/qq36246172/article/details/119185812