|      1Biggoldfish      2023-04-01 19:29:46 +08:00 公交完全是可以通过现有的系统 API 实现的,之前有微信小程序可以支持 NFC 公交卡,只是大多数手机厂商直接做成了系统应用 而且在美国 NFC 公交卡都是 Google Wallet/Apple Pay 里添加一下就行了,没有第三方应用自己实现公交卡的需求(也很少会有人用 | 
|  |      2fromzero      2023-04-01 19:34:22 +08:00 可能觉得不安全吧 | 
|      32xvaHoK2LGxQ29R5      2023-04-01 19:43:02 +08:00 为什么要提供 NFC 的 API, android 又没有要求所有手机内置 NFC. NFC 对于手机来说本来就像是蓝牙一样的选配外设,顶多是一个分享功能。对于支付和门禁这种的应用就更是选配中的选配了。 只不过因为国内厂商很卷,所以大家看起来好像是标配,但是这不代表说 anroid 就得把这个应用包进系统里啊 | 
|  |      4CEBBCAT      2023-04-01 20:10:40 +08:00 @kangyue9999 #3 是不是我理解不太对?我觉得楼主的重点是 API | 
|  |      5ysc3839      2023-04-01 22:18:30 +08:00 via Android  2 那些 NFC 功能都是 NFC 芯片提供的,没有标准接口的。 Android 有 NFC 卡模拟接口,是因为市面上绝大多数 NFC 芯片都支持这种模式,且实际应用场景很广泛,如模拟银行卡。 目前银行卡交易系统都是实时联网的,所以卡模拟只需要交换一个一次性授权密钥即可,其他数据是联网验证的。 而公交卡系统中很多刷卡机只能做到定时联网同步数据,做不到实时联网,那刷卡机不可避免要信任卡中的数据,这就涉及到了数据复制的问题,那就不能用纯软件的模拟方案了。因此大部分 NFC 芯片不会支持这种模拟方式,即使 Android 定义了这个接口,结果也会是没有厂商支持。实际上 Android 是支持 NFC SIM 的,利用 SIM 卡来充当公交卡的安全芯片。 | 
|  |      6datou      2023-04-01 22:45:00 +08:00 我记得 16 年左右很多手机都支持和包的 nfc-sim 呀 | 
|  |      7yolee599      2023-04-02 00:09:40 +08:00 via Android  1 andriod 太容易 hack 了,和支付相关的越开放风险越高 | 
|      8felixlong      2023-04-02 09:42:27 +08:00 | 
|      10wanghui22718      2023-04-03 16:22:11 +08:00 安全问题。刚好深入研究过一点,api 是有的,但是对 m1 卡数据扇区的模拟依赖 nfc 芯片,需要一个芯片密钥才能进行,因安全问题只能设备制造商存有,不可能提供第三方随意使用。 | 
|  |      11lc5900      2023-04-03 17:48:32 +08:00 安全问题吧,ESE 的权限不能随便开放,不过可以用 HCE 来软实现部分功能 |