场景
在NFC开发过程中,当把公交卡、银行卡、身份证等卡片靠近自己手机时,如何让自己的app像支付宝、京东、QQ及其他银行app一样,展示出自己的app?说白了就是如何让自己的app进入系统的候选列表?
如何让自己的app进入系统的候选列表?
解决方案
如何让自己的app进入系统的候选列表?为此需要有以下3步操作:
1.权限配置
<!-- NFC读取权限 -->
<uses-permission android:name="android.permission.NFC"/>
<!-- 要求当前设备必须要有NFC芯片 -->
<uses-feature android:name="android.hardware.nfc" android:required="true" />
2.activity配置
<meta-data android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/nfc_tech_filter"/>
3.xml过滤文件配置nfc_tech_filter.xml
️注意:
1. nfc_tech_filter.xml是在res/xml中添加的xml文件
2. 文件名nfc_tech_filter可以自定义,只需要和第2步中的配置的该文件名称保持一致即可。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<tech-list>
<tech>android.nfc.tech.MifareClassic</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.MifareUltralight</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.NfcA</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.NfcF</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.Ndef</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.NfcV</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.NfcB</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.NdefFormatable</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.IsoDep</tech>
</tech-list>
</resources>
特别提示:
nfc_tech_filter.xml中配置的NFC类型可以不用这么多,可以根据实际情况,配置你所需要支持的类型即可。我这里是自己开发的Demo,为了方便各种都支持识别。
经过以上3点配置,就可以让自己的app进入系统的候选列表了。右下角自己的应用NFCap:
自己的应用NFCap已进入候选列表了
网友评论