如何在可能没有托管配置提供程序的应用程序中使用托管配置?

How to use Managed Configurations in an app that may not have a Managed Configurations Provider?

我正在开发一款可在 2 种不同的 Android 环境(消费者和企业市场)中运行的应用程序。假设这是一个短信应用程序,需要管理十几个配置参数。

第一个环境是未启用 Android 企业 (AfW) 功能的标准 Android 设备。因此,没有 EMM (MDM) 可以提供 Android Agent/Client 应用程序成为实施托管配置提供程序的 device/profile 所有者。

第二个环境是在公司内部。 EMM (MDM) 用于管理其所有公司拥有的设备。 EMM 是设备或配置文件所有者。它们被设置为使用托管配置并需要对此应用程序进行远程配置。

为了支持这两种情况,此应用应如何检索配置?

我目前的想法是检查我的应用程序实例是否属于设备或配置文件所有者。如果是这样,我将使用托管配置。如果没有,它将允许使用 SharedPreferences 在设备上进行应用内配置。

我相信这会奏效,但看起来太像黑客了。它还限制使用 device/profile 所有者的公司向其用户提供控制权。我想其他 Android 应用程序一定会开始遇到这种情况,因为托管配置的采用率在增加。这种情况有更好的解决方案吗?

无论设备是否被管理,您都可以随时调用RestrictionsManager.getApplicationRestrictions()

  • 如果设备被管理并且公司配置了应用程序,它将return配置,
  • 如果设备不受管理或公司未配置应用程序,它将 return 为空 Bundle,您可以将控制权交给用户。