【已解决】Android12以上PendingIntent需要强制增加FLAG_IMMUTABLE或FLAG_MUTABLE

这篇具有很好参考价值的文章主要介绍了【已解决】Android12以上PendingIntent需要强制增加FLAG_IMMUTABLE或FLAG_MUTABLE。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Android13适配时报下面错误:

java.lang.IllegalArgumentException: android: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.

02-26 20:00:47.055 27821 27821 I System  : java.lang.IllegalArgumentException: android: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
02-26 20:00:47.055 27821 27821 I System  : Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
02-26 20:00:47.055 27821 27821 I System  :     at android.app.PendingIntent.checkFlags(PendingIntent.java:404)
02-26 20:00:47.055 27821 27821 I System  :     at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:674)
02-26 20:00:47.055 27821 27821 I System  :     at android.app.PendingIntent.getBroadcast(PendingIntent.java:661)
02-26 20:00:47.055 27821 27821 I System  :     at com.XX.server.ntp.SunmiNetworkTimeUpdateService.<init>(SunmiNetworkTimeUpdateService.java:148)
02-26 20:00:47.055 27821 27821 I System  :     at com.XX.server.SunmiSystemServer.<init>(SunmiSystemServer.java:55)
02-26 20:00:47.055 27821 27821 I System  :     at com.android.server.SystemServer.startOtherServices(SystemServer.java:2414)
02-26 20:00:47.055 27821 27821 I System  :     at com.android.server.SystemServer.run(SystemServer.java:944)
02-26 20:00:47.055 27821 27821 I System  :     at com.android.server.SystemServer.main(SystemServer.java:654)
02-26 20:00:47.055 27821 27821 I System  :     at java.lang.reflect.Method.invoke(Native Method)
02-26 20:00:47.055 27821 27821 I System  :     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
02-26 20:00:47.055 27821 27821 I System  :     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:920)
02-26 20:00:47.055 27821 27821 W SystemServer: ***********************************************
02-26 20:00:47.055 27821 27821 E SystemServer: BOOT FAILURE starting SunmiSystemServer
02-26 20:00:47.055 27821 27821 E SystemServer: java.lang.IllegalArgumentException: android: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
02-26 20:00:47.055 27821 27821 E SystemServer: Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
02-26 20:00:47.055 27821 27821 E SystemServer:     at android.app.PendingIntent.checkFlags(PendingIntent.java:404)
02-26 20:00:47.055 27821 27821 E SystemServer:     at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:674)
02-26 20:00:47.055 27821 27821 E SystemServer:     at android.app.PendingIntent.getBroadcast(PendingIntent.java:661)
02-26 20:00:47.055 27821 27821 E SystemServer:     at com.XX.server.ntp.SunmiNetworkTimeUpdateService.<init>(SunmiNetworkTimeUpdateService.java:148)
02-26 20:00:47.055 27821 27821 E SystemServer:     at com.XX.server.SunmiSystemServer.<init>(SunmiSystemServer.java:55)
02-26 20:00:47.055 27821 27821 E SystemServer:     at com.android.server.SystemServer.startOtherServices(SystemServer.java:2414)
02-26 20:00:47.055 27821 27821 E SystemServer:     at com.android.server.SystemServer.run(SystemServer.java:944)
02-26 20:00:47.055 27821 27821 E SystemServer:     at com.android.server.SystemServer.main(SystemServer.java:654)
02-26 20:00:47.055 27821 27821 E SystemServer:     at java.lang.reflect.Method.invoke(Native Method)
02-26 20:00:47.055 27821 27821 E SystemServer:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
02-26 20:00:47.055 27821 27821 E SystemServer:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:920)
02-26 20:00:47.056 27821 27821 D SystemServerTiming: StartPrintManager

修改方法:

   148         if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
   149             mPendingPollIntent = PendingIntent.getBroadcast(mContext, POLL_REQUEST, pollIntent, PendingIntent.FLAG_IMMUTABLE);
   150         }else{
   151             mPendingPollIntent = PendingIntent.getBroadcast(mContext, POLL_REQUEST, pollIntent, 0);
   152         } 

参考:

App和SDK开发必看 | 个推分享Android12适配指南 - 知乎 (zhihu.com)文章来源地址https://www.toymoban.com/news/detail-503806.html

到了这里,关于【已解决】Android12以上PendingIntent需要强制增加FLAG_IMMUTABLE或FLAG_MUTABLE的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android PendingIntent 闪退

    先来给大家推荐一个我日常会使用到的图片高清处理在线工具,主要是免费,直接白嫖 。 有时候我看到一张图片感觉很不错,但是图片清晰度不合我意,就想有没有什么工具可以处理让其更清晰, 网上随便搜下就能找到,但是搜出来的很大可能是需要付费,这里便发现了两

    2024年01月17日
    浏览(35)
  • Android笔记(十七):PendingIntent简介

    PendingIntent翻译成中文为“待定意图”,这个翻译很好地表示了它的涵义。PendingIntent描述了封装Intent意图以及该意图要执行的目标操作。PendingIntent封装Intent的目标行为的执行是必须满足一定条件,只有条件满足,才会触发意图的目标操作。 获取PendingIntent对象有以下几种方式

    2024年02月04日
    浏览(41)
  • android 12版本文件操作需要的权限,需要跳转设置页面,提醒用户手动设置

    安卓12版本的,API31,在对文件file操作时,除了申请 这个是在API30以上都需要的,否则就会报找不到文件的错误  跳转设置项,用户手动打开当前APP的文件操作权限

    2024年02月12日
    浏览(58)
  • Android 11及以上 showSoftInput 没有效果解决方式

    笔者在使用带输入框的AlertDialog时需要将输入框立即显示出来,发现在安卓11 (API 30)及以上版本使用传统的显示输入法代码失效,查找后发现新的方式。 安卓11 (API 30)及以上版本无法调用以下代码无法显示输入框并在控制台找到以下提示信息。 信息提示 解决方式 使用新的方式

    2024年02月13日
    浏览(136)
  • Android 9.0以上 连接wifi失败 解决方案

    Android9开始,WIFI那块的API发生了改变: addNetwork(WifiConfiguration config) 此方法在API级别Q中已弃用) 见addNetworkSuggestions(java.util.List), removeNetworkSuggestions(java.util.List)新的API添加Wi-Fi网络进行审议时,自动连接到无线网络。 兼容性注意:对于目标Build.VERSION_CODES.Q或更高的应用程序

    2024年02月12日
    浏览(44)
  • Android 10以上出现的 android Permission denied 读写权限问题解决方法

    原因: 从Android 10 开始,应用即使申请了权限,也只能读写自己外部存储的私有目录,就是Android/data/对应应用包名 下的相关目目录。除此之外任何目录的读写都会被拒绝,并提示 android Permission denied。 解决方案 在 AndroidManifest.xml 文件中,在application标签中添加如下属性 and

    2024年02月03日
    浏览(65)
  • android 7.0以上 https使用charles抓包 提示 unknow 解决方案

    关于android7.0以上https抓包问题,在charles都配置好的情况下依然提示unknow,解决方案如下 一、在res-xml下新建 network_security_config.xml 文件 network_security_config.xml 中的内容表示 系统的 和用户自己的证书均被信任 二、在AndroidManifest application 中添加 然后就可以了 注意该装的证书是少

    2024年02月16日
    浏览(49)
  • Android 10(Q) 以上普通 APP 隐藏应用图标问题探究及解决方案

    aosp 版本 10.0 系统 aosp 版本 13.0 系统 APP AndroidManifest.xml 中通过 activity-alias 配置带 LAUNCHER 属性 category,并且 android:enabled=“true” 10.0 系统中可安装后正常显示 icon,通过 setComponentEnabledSetting 隐藏 icon 成功,桌面上不留下 app 相关任何图标 13.0 系统中可安装后正常显示 icon,通过

    2024年01月22日
    浏览(40)
  • 手机无法访问”xxx”目录(Android 11及以上授予文件管理权限)的解决方法

    Android11改变了此前安卓系统对文件管理的规则,在Android11上,文件读写变成了特殊权限。应用默认只能读写自己的目录/android/data/包名,这就导致我们想修改某个文件里的内容,结果却没有读写权限。本文主要提供一种解决方法——root+adb。 进入adb+ROOT权限开启 我们进入 adb s

    2024年02月16日
    浏览(62)
  • 反思欧拉给我们带来了什么:他让数学难度增加了十倍以上,让所有数学人深受其害

    按:为了拯救中国数学,我舍得一身剐也要戳穿欧拉伪装;欢迎欧拉拥趸拿出真凭实据与我硬怼,——不要背书、不要瞎话、不要道听途说! 丹麦童话作家安徒生有一篇作品《皇帝的新装》完美地刻绘了人性的劣根:心里知道是怎么回事,但为了面子道貌岸然自欺欺人。骗子

    2024年01月22日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包