Android 12下PROVISIONING_SUCCESSFUL未触发,无法启动MDM应用求助
针对你遇到的Android 12下MDM DPC应用预配完成后PROVISIONING_SUCCESSFUL意图未被调用的问题,可按以下步骤排查修复:
修正ADMIN_POLICY_COMPLIANCE的返回码
Android 12收紧了预配流程的结果校验,必须使用Activity.RESULT_OK作为处理ADMIN_POLICY_COMPLIANCE意图的返回码,而非RESULT_FIRST_USER。非RESULT_OK的返回会被系统判定为预配未完成,直接跳过PROVISIONING_SUCCESSFUL的触发。修正后的处理代码示例:@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent = getIntent(); if (android.app.action.ADMIN_POLICY_COMPLIANCE.equals(intent.getAction())) { // 执行合规检查逻辑 setResult(Activity.RESULT_OK, intent); finish(); } }完善Manifest的意图过滤器配置
在ProvisioningSuccessActivity的意图过滤器中添加android.intent.category.CATEGORY_PROVISIONING分类,Android 12部分场景下系统会依赖该分类匹配预配相关意图:<activity android:name=".pages.ProvisioningSuccessActivity" android:exported="true" android:theme="@android:style/Theme.NoDisplay" android:permission="android.permission.BIND_DEVICE_ADMIN"> <intent-filter> <action android:name="android.app.action.PROVISIONING_SUCCESSFUL"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.CATEGORY_PROVISIONING"/> </intent-filter> </activity>验证预配流程的合规性
确保处理ADMIN_POLICY_COMPLIANCE时,所有合规检查逻辑已正确完成且无阻塞。Android 12中若存在未解决的合规问题,系统会终止预配流程,不会触发成功意图。检查GET_PROVISIONING_MODE的返回结果
确认处理GET_PROVISIONING_MODE意图时返回的预配模式(如完全管理模式)符合Android 12的规范,错误的模式返回会导致流程中断。通过系统日志定位问题
使用命令adb logcat | grep Provisioning抓取系统日志,查看是否有预配失败、意图匹配错误的相关日志,精准定位故障环节。
内容的提问来源于stack exchange,提问作者Nivil Boban

