nfc入门

本文介绍了Android设备如何使用NFC技术进行数据交换。基础部分解释了NFC的原理,权限和feature配置。接着,详细讨论了ACTION_NDEF_DISCOVERED、ACTION_TECH_DISCOVERED和ACTION_TAG_DISCOVERED三种不同action的配置,特别是TECH_DISCOVERED时如何配置tech-list。此外,还展示了如何从NDEF记录中获取数据,并提供了示例代码。
摘要由CSDN通过智能技术生成

基础

        参考

        利用nfc读取公交卡

        nfc:近距离无线通信(Near Field Communication),距离一般要小于4cm。android设备(需要支持nfc技术)和nfc设备(文档中称为tag)进行少量的数据交换。

权限及feature配置

        需要nfc权限,如下:

<uses-permission android:name="android.permission.NFC"/>
也可以配置uses-feature。但,如果Nfc并不是app的主要功能,不建议在清单文件中配置。
<uses-feature android:name="android.hardware.nfc" android:required="true" />
        如果没有配置<uses-feature>可能导致不支持nfc功能的android设备安装上了该应用。可以使用如下代码进行检测判断
NfcAdapter adapter = NfcAdapter.getDefaultAdapter(this);
        if (adapter == null)
            Toast.makeText(MainActivity.this, "nfc不支持", Toast.LENGTH_SHORT).show();
        if (adapter != null && !adapter.isEnabled()) {
            Toast.makeText(MainActivity.this, "nfc未打开", Toast.LENGTH_SHORT).show();
        }

action的配置

        当android设备扫描到有nfc设备时(未锁屏状态下,android设备会不停地扫描nfc设备,除非用户在手机设置中关闭了nfc功能),系统会发送一个intent。因此,为了获取到该intent, 需要在相应的activity配置中加上<intent-filter>。该intent一共有以下三个action:

<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
<action android:name="android.nfc.action.TAG_DISCOVERED" />

三个action的匹配顺序如下:


NDEF_DISCOVERED

        当nfc设备(tag)中存储的数据为ndef格式并且系统可以识别数据的类型(MIME Type或者 URI)时,intent的action为该值。如:

匹配纯文本

<intent-filter>
    <action android:name="and
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值