You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AndroidManifest中SET_TIME权限标红无法完成APK签名该如何处理?

解决方案

android.permission.SET_TIME 属于Android系统限制级权限,protectionLevel为signature|privileged,仅支持和系统固件签名一致的应用、或预装在系统特权分区的应用调用,普通第三方应用直接在Manifest声明该权限会触发IDE的权限校验报错,这是行内标红的核心原因,可根据你的应用场景选择对应方案解决:

方案1:适配系统预装/系统签名应用场景(仅适用于定制ROM)

如果你的应用是定制ROM的预装应用,或可拿到ROM对应的系统签名,按以下操作处理:

  • 临时关闭IDE校验绕过标红:Android Studio环境下在标红行按Alt+Enter,选择「Suppress inspection: ProtectedPermission」即可忽略当前行的权限校验报错
  • 签名配置环节使用对应ROM的系统签名文件完成签名,打包后的应用即可正常获取SET_TIME权限
  • 若为预装应用,直接将APK放入系统/system/priv-app目录,无需额外签名也可正常使用该权限

方案2:适配普通第三方应用场景

如果你的应用面向普通用户分发,无法获取系统签名,不要声明SET_TIME权限,走官方允许的路径实现时间修改需求:

  • 先删除Manifest中的android.permission.SET_TIME声明,直接解决标红问题
  • 代码中跳转系统时间设置页,引导用户手动修改时间,跳转代码示例:
startActivity(Intent(Settings.ACTION_DATE_SETTINGS))
  • 若你的应用适配root运行场景,可直接执行shell命令修改时间,无需申请该权限,命令示例:
    date -s "20240520.123000"

临时绕过校验完成签名配置

如果仅需要先验证打包签名流程是否正常,可在Manifest的权限节点添加忽略校验属性,示例:

<uses-permission android:name="android.permission.SET_TIME"
    tools:ignore="ProtectedPermissions" />

注意该配置仅能绕过IDE校验完成打包,普通第三方应用安装后依然无法获取该权限,相关功能不会生效。

内容的提问来源于stack exchange,提问作者Евгений Коликов

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:06:05