发布日期:2025-10-05 14:17浏览次数:
今儿个跟大伙唠唠NFC开发踩过的那些坑!上周接了个扫码开门的小项目,寻思着NFC不是挺成熟了嘛结果一上手差点被坑到姥姥家。
第一天吭哧吭哧搭环境,安卓Studio装权限声明写得倍儿全:近场通讯、前台服务、蓝牙定位咔咔一顿勾选。拿测试机一跑,读取标签的按钮刚按下去,“哐当”直接闪退!日志里就剩一行冷冰冰的"*"。后来才发现新版本安卓压根不是看清单权限,得在代码里用enableReaderMode,这玩意儿藏得跟地雷似的。
躲过权限坑刚喘口气,又栽进数据格式的泥潭。以为所有NFC卡片都是乖宝宝,结果实际测试时:
原来老式Mifare卡得用自家密钥开锁,公交卡是CPU卡要特殊指令集。最坑的是安卓和iOS的NDEF支持根本不同步!逼得我写了个格式探针,见人说人话见鬼说鬼话。
做到后台常驻读取觉着稳了,测试机放桌上半小时回来一看——手机烫得能煎蛋!电量曲线跟跳楼似的。查了三天发现两个凶犯:
更骚的是华为手机有个自动优化功能,半夜偷偷把我的服务给宰了,用户早上根本刷不开门!
当我觉得终于能交差时,测试妹子把手机壳掀了:“你这NFC怎么时灵时不灵?”拿机器在手机上反复扫描才惊觉——不同型号的NFC天线位置能差两厘米!某米在摄像头旁边,某为在正中间,某星直接藏后盖logo里。被迫在UI里加了个动态位置引导图,用户举着手机像扫雷似的找感应点。
折腾三周才明白:玩NFC光懂API就是找死,得把安卓版本差异当祖宗供着,把手机当爷伺候,最重要的还是备台备用机——别问,问就是测试时把老板手机刷成砖赔了半个月工资!