易软
易软
  • 发布:2023-08-11 15:06
  • 更新:2024-06-04 11:45
  • 阅读:1204

关于targetSdkVersion设置为34后安卓12高版本SDK无法识别NFC的问题解决

分类:uni-app
NFC

按正常的Native.js 方法来调用NFC 在安卓低版本的SDK 是没有问题的,单是当我们将 targetSdkVersion 设置为34 及安卓的API 级别调高后 在代码中

pendingIntent = PendingIntent.getActivity(main, 0, intent, 0);  

这个方法就回出现问题,正常的是有返回的值的,但是升级为高版本SDK 就返回的是null。
标准基座的话是没有问题,但是自定义和正式打包的话就会返回null。因此我们需要将这个方法进行改造

改造为:

var pendingIntent = PendingIntent.getActivity(ESUtils.NFC.mainNFC, 0, _intent, PendingIntent.FLAG_MUTABLE);

将最后一个参数 0 改为 PendingIntent.FLAG_MUTABLE固定值 就可以了

社区有很多的 方法 包括
https://ask.dcloud.net.cn/article/35690
https://ask.dcloud.net.cn/article/35046
https://ask.dcloud.net.cn/question/12942
都可以使用 只需要将 对应的上面的 替换就可以了。
业务逻辑 自己就可以搞定

1 关注 分享
l***@163.com

要回复文章请先登录注册

易软

易软 (作者)

回复 一个亿的理想 :
PendingIntent.FLAG_MUTABLE 这个 只是在安卓高版本才能获取到的
2024-06-04 11:45
一个亿的理想

一个亿的理想

回复 易软 :
方便加个微信请教吗?我微信号:15151400691
2024-06-04 10:40
一个亿的理想

一个亿的理想

回复 易软 :
我是真机运行在pda设备可以刷nfc卡,并且获取到id,但是用Android Studiio打的apk包,安装到同样的pda设备,一刷nfc就卡住然后闪退了,然后我按照你的方法改成PendingIntent.FLAG_MUTABLE,发现PendingIntent.FLAG_MUTABLE打印出来是undefined
2024-06-04 10:28
易软

易软 (作者)

回复 一个亿的理想 :
应该不是NFC 的问题,可能是你蓝牙的问题
2024-06-04 10:08
一个亿的理想

一个亿的理想

大神你好,为啥我写的nfc调用方法在本地真机调试可以,但是打包成apk安装到移动端,调用的时候会闪退呢?愿意有偿帮助,急
2024-06-04 10:07
易软

易软 (作者)

回复 1***@163.com :
我自己写的库啊 用于放数据的
2023-12-14 14:44
易软

易软 (作者)

回复 5***@qq.com :
那是我自己写的库啊
2023-12-14 14:42
1***@163.com

1***@163.com

回复 5***@qq.com :
你解决了吗
2023-11-27 16:58
1***@163.com

1***@163.com

ESUtils is not defined啊 哥们看见了回一下呗
2023-11-27 16:58
5***@qq.com

5***@qq.com

ESUtils is not defined啊
2023-11-17 16:13