Redmi 4A(MIUI10/Android7)从Service启动Activity遭权限拒绝求助
解决MIUI 10中Service启动Activity权限被拒的问题
问题根源
日志里的MIUILOG- Permission Denied Activity提示,是MIUI 10针对后台应用启动Activity的额外限制导致——哪怕是启动自身应用的Activity,也需要满足特定条件或开启对应权限。
代码优化方案
你当前的Intent设置了大量冗余参数,还错误使用了FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY(该flag不适合主动启动场景)。修改后的简化代码:
Intent intent = new Intent(context, main_activity.class); // 从Service启动Activity必须添加NEW_TASK标识 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent);
开启MIUI后台弹出权限
如果代码修改后仍无效果,需手动开启应用的「后台弹出界面」权限:
- 打开手机「设置」→「应用设置」→「权限管理」
- 找到你的应用
com.qwe7002.telegram_sms - 找到「后台弹出界面」选项,设置为「允许」
补充说明
MIUI从V9版本开始新增后台启动Activity限制,用于避免恶意应用弹窗打扰用户。只要满足以下两个条件即可正常启动:
- Intent携带
FLAG_ACTIVITY_NEW_TASK标识 - 应用已开启「后台弹出界面」权限
内容的提问来源于stack exchange,提问作者Anton Samokat
相关产品推荐
相关产品推荐

