Android 12 -使用PROVISIONING_SUCCESSFUL进行设置后启动MDM应用

w7t8yxp5  于 2022-12-21  发布在  Android
关注(0)|答案(1)|浏览(241)

bounty将在2天后过期。回答此问题可获得+500的声誉奖励。Prince Champappilly正在寻找来自声誉良好来源的答案:适用于android 12及以上版本的完全托管模式

我们最近迁移了我们的设备策略应用(MDM)以支持android 12,并希望在初始设置向导完成后打开我们的MDM dpc应用。在android 11之前,此操作一直运行良好,直到android 12更新发布。我们正在处理GET_PROVISIONING_MODEADMIN_POLICY_COMPLIANCE,但从未调用PROVISIONING_SUCCESSFUL
这是我们在PROVISIONING_SUCCESSFUL清单中的代码:

<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"/>
        </intent-filter>
</activity>

我们将在收到ADMIN_POLICY_COMPLIANCE意图时调用setResult(RESULT_FIRST_USER, intent);
有谁能帮帮我们吗?

62lalag4

62lalag41#

从Android 12开始,PROVISIONING_SUCCESSFUL Intent在以下情况下发送

  • 未在初始设置向导中进行资源调配(例如,当最终用户安装并启动DPC应用程序时,DPC应用程序将通过ACTION_PROVISION_MANAGED_PROFILE触发资源调配)或
  • 无法解析ADMIN_POLICY_COMPLIANCE活动操作的任何活动

有关相应的源代码,请参见here
因此,在您的情况下,您必须将ProvisioningSuccessActivity的PROVISIONING_SUCCESSFUL Intent过滤器替换为ADMIN_POLICY_COMPLIANCE Intent过滤器。

背景资料

ADMIN_POLICY_COMPLIANCE Intent已与GET_PROVISIONING_MODE一起引入Android 10,此后,建议DPC使用合规性屏幕扩展初始设置向导并强制执行初始策略设置:
DPC必须使用此新Intent,而不是侦听ACTION_PROFILE_PROVISIONING_COMPLETE广播(源)。
在Android 12之前,这一变化并不影响现有的DPC实现,因为现有的DPC只支持完全托管的配置。如果DPC也希望使用新的工作配置文件,则必须在Android 10中切换到新的Intent。
随着ACTION_PROVISION_MANAGED_DEVICE的弃用,完全托管的配置现在只能由安装向导触发。仅支持完全托管的配置的DPC实现现在也必须切换到新Intent。
ACTION_PROFILE_PROVISIONING_COMPLETE广播和PROVISIONING_SUCCESSFUL Intent现在仅在设置向导之外触发预配时发送。例如,当用户安装并启动DPC应用程序时,这会通过ACTION_PROVISION_MANAGED_PROFILE触发工作配置文件的预配。

相关问题