Android 12下PROVISIONING_SUCCESSFUL intent无法接收问题求助
这是Android 12(API 31)适配阶段MDM类应用的常见坑,很多设备政策类应用开发者都遇到过相同问题,可按以下步骤排查修复:
- 首先移除Activity配置中的
android.permission.BIND_DEVICE_ADMIN属性:这个权限是DeviceAdminReceiver专属配置,加在Activity上会导致系统投递Intent时权限校验不通过,直接跳过匹配你的页面。修复后的清单配置参考如下:
<activity android:exported="true" android:name=".ProvisioningSuccessActivity"> <intent-filter> <action android:name="android.app.action.PROVISIONING_SUCCESSFUL"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>
- 其次检查预配置流程的参数:Android 12开始
PROVISIONING_SUCCESSFUL改为显式Intent投递,如果你是自定义预配置流程,需要在预配置逻辑末尾通过DevicePolicyManager.EXTRA_PROVISIONING_SUCCESSFUL_ACTIVITY_COMPONENT额外参数显式指定你要启动的Activity组件,否则系统不会主动隐式匹配对应页面。 - 兜底兼容方案:如果修改完上述配置还是无法正常收到Intent,可以直接在你已经能正常接收的
ACTION_PROFILE_PROVISIONING_COMPLETE广播回调中主动启动ProvisioningSuccessActivity,两者触发时差不超过100ms,对业务逻辑和用户体验无任何影响。
内容的提问来源于stack exchange,提问作者issamux
相关产品推荐
相关产品推荐

