android 如何启动nfc卡模拟模式_手机NFC的4大应用 除了刷公交还收割羡慕眼神

015a33d052a877379dfb95663642abdb.png

如今中高档手机都在力推NFC功能,根据厂商在发布会上的宣传,NFC能够让大家的生活更为便捷。那么大家对于NFC这项技术有多少了解呢?NFC能为我们的生活带来哪些便利?未来NFC还会被赋予什么功能?今天我们就了解一下。

01NFC技术是什么?

NFC是“Near Field Communication”的简称,中文译名为“近场通信”,这是一种短距离的无线通讯技术,有效传输距离不超过10厘米,手机通过内置NFC线圈实现对NFC功能的支持。智能手机上的NFC模块一般包括非接前端模块、射频天线和安全区域等,拆解带有NFC功能的智能手机后,最醒目的是NFC线圈。

b64c5ab9ea0d1b4807a3a1e7fe8c6d6b.png

红框内为手机NFC线圈

手机NFC模块的工作原理是将传输的信息通过NFC线圈转化为电信号,让NFC读取端读取出对应的信息。手机内置NFC一般会有三种模式,分别是NFC点对点通信模式读写器模式NFC卡模拟模式

dd54931280045ac8757628c472b76c6c.png

华为“一碰传音”基于NFC点对点通信模式实现

NFC点对点通信模式。这种模式是两个具有NFC功能的设备通过NFC功能连接后交换数据。这种模式主要用于不同设备之间的“认证”,让两个设备更快的建立蓝牙或者无线连接(华为“一碰传音”基于NFC点对点通信模式实现)。

8916b8746f49c63ad751d84e7c17a813.png

Android Beam基于NFC读写器模式实现的

读卡器模式。NFC模块的读卡器模式,就是可以让手机通过NFC功能实现数据交换,或者读取其他IC卡内的数据。例如手机和相机之间可以利用NFC功能传输图片,安卓手机之间使用“Android Beam”功能通过NFC功能传输数据,都是基于NFC点对点通信模式实现的。

卡模拟模式:支持该模式的NFC通常会被称为“全功能NFC”,这种模式是将带有NFC模块的手机模拟成门禁卡、银行卡等功能。

下面,我们来盘点一下手机NFC常用的应用。

02NFC现在的应用是什么?

当前NFC在手机上的应用主要是电子支付交通卡门禁eID四大类。我们以vivo手机为例展示这四种功能。

电子支付

bcc27d0f86a7ae58194818d652226f8c.png

NFC电子支付设置简图

NFC电子支付是通过利用手机NFC功能模拟银行卡、绑定支付宝微信等功能实现的,相比大家习惯使用的扫码支付,优点在于对于网络的依赖程度不高、支付过程在NFC的碰触过程中即可结束,使用过程更为便捷。

交通卡

7046b903755454df60863d1cc56e668b.png

NFC交通卡

NFC交通卡实现原理是利用手机NFC功能模拟“交通联合卡”,“交通联合卡”在国内已经覆盖超过300多个城市,对于不支持“交通联合卡”的城市,手机厂商也实现了诸如“长安通”“合肥通”“武汉通”等地方交通卡的支持。

门禁卡

f36be20f9d6b598fa32c8bf94e9d91a8.png

很多的小区为了便捷业主的操作,使用NFC门禁卡来简化开门流程。但NFC门禁卡和要是一样会存在“忘带”的问题,手机NFC功能通过模拟门禁卡,出门不用带门禁卡,使用手机就可以轻松开门,相较于独立的NFC门禁卡,手机更为安全可靠。

eID

445733ca44bde9daac7f89e1a09ca9b9.png

现在很多带有NFC功能的手机已经实现了对于eID的支持。eID全程为“electronic IDentity”,中文全程为公民网络电子身份标识。eID是以密码技术为基础、以智能安全芯片为载体、由“公安部公民网络身份识别系统”签发给公民的网络电子身份标识,能够在不泄露身份信息的前提下在线远程识别身份。

fbd23ea2f1d498ca9ef970cd463ade37.png

简言之,eID在一定程度上可以取代身份证在线下的使用,如深圳北京的一些酒店已经实现了eID登记入住的功能。此外eID还能够实现在线身份验证、线下身份验证等功能。eID技术在保障个人隐私的前提下带来了更为便捷的身份验证方式,深化了智能手机在5G时代“智慧中枢”的定位。

除了以上的功能外,NFC在发展过程中被赋予了全新的功能。

03NFC未来将何去何从?

NFC未来的发展方向是集成无线充电功能。

NFC线圈以前只用于传输信息,负责制定NFC规范的NFC论坛在不久前为我们带来了全新的WLC无线充电规范(Wireless Charging Specification),这种规范可以让NFC模块的线圈也能较小的智能设备提供1W的无线充电功率。

e55c80a1e9daec8b8e01342daf3c0e4b.png

WLC规范的NFC线圈可为小型智能设备无线充电

简言之,NFC的WLC规范带来的是一种“反向无线充电功能”,这种功能可以上手机通过NFC线圈给智能手表、智能耳机等小型智能设备充电,在一定程度上解决了用户对于小型智能设备的充电需求。

另外,我们观察一下带有NFC功能和无线充电功能的小米10 Pro。

9460fd71f2d563e8f879ac038c5d3502.png

图片来自官方拆解视频

仔细观察不难发现,NFC线圈和无线充电线圈在结构设计上有一定相似之处,而WLC规范的落地并不会带来过多的成本负担。另外需要了解的是,现阶段的无线充电技术基础技术为电磁感应,而NFC线圈在未来的发展中必然要和无线充电线圈合二为一,进一步降低手机内部的空间占用。

简言之,现阶段的NFC功能已经解决了对于小型智能设备的“反向无线充电”功能,而NFC线圈对手机无线充电功能的支持已经在路上。

总结

ae2e677d6cdbd8698e706ba986535d02.png

阅读本文以后不难发现,NFC作为一种近距离通讯技术,以安全可靠的方式实现了高度私人化、准确化的信息传输,同时NFC功能因为操作简单的特性会在未来的IoT生态中会起到越来越多“牵线搭桥”的作用,而无线充电功能会随着技术发展将会以NFC线圈的形式得以呈现。届时,我们能看到更多的创意功能通过NFC功能实现。

(7462673)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现AndroidNFC模拟功能,可以按照以下步骤进行: 1. 在AndroidManifest.xml文件中添加NFC权限: ``` <uses-permission android:name="android.permission.NFC" /> ``` 2. 创建一个继承HostApduService的类来处理APDU命令: ``` public class MyHostApduService extends HostApduService { private static final String TAG = "MyHostApduService"; @Override public byte[] processCommandApdu(byte[] commandApdu, Bundle extras) { // 处理APDU命令 ... // 返回响应数据 return responseApdu; } @Override public void onDeactivated(int reason) { Log.d(TAG, "onDeactivated: " + reason); } } ``` 3. 在AndroidManifest.xml文件中注册该服务: ``` <application> <service android:name=".MyHostApduService" android:exported="true" android:permission="android.permission.BIND_NFC_SERVICE"> <intent-filter> <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE" /> </intent-filter> <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/apduservice" /> </service> </application> ``` 其中,@xml/apduservice是一个XML文件,定义了支持的AID(应用标识符)和对应的服务组件: ``` <?xml version="1.0" encoding="utf-8"?> <host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android" android:description="@string/app_name" android:requireDeviceUnlock="false" > <aid-group android:description="@string/app_name" android:category="other"> <aid-filter android:name="F0010203040506" /> </aid-group> </host-apdu-service> ``` 4. 在processCommandApdu方法中处理APDU命令,可以根据命令字节码来判断需要执行的操作。例如,如果收到SELECT AID命令,可以返回应用程序的名称和版本号: ``` private static final byte[] AID = { (byte)0xF0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 }; private static final byte[] VERSION = { 0x00, 0x01 }; @Override public byte[] processCommandApdu(byte[] commandApdu, Bundle extras) { if (Arrays.equals(commandApdu, SELECT_APDU)) { return concatenateByteArrays(AID, VERSION); } return UNKNOWN_COMMAND_RESPONSE; } private byte[] concatenateByteArrays(byte[] a, byte[] b) { byte[] result = new byte[a.length + b.length]; System.arraycopy(a, 0, result, 0, a.length); System.arraycopy(b, 0, result, a.length, b.length); return result; } ``` 这样,当读器连接到设备时,设备会自动启动MyHostApduService,并等待命令。如果读器发送SELECT AID命令,设备会返回应用程序的名称和版本号。 需要注意的是,NFC模拟功能需要设备支持Host Card Emulation(HCE)功能。如果设备不支持HCE,那么就无法使用NFC模拟功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值