我将在正在开发的应用程序中使用托管配置。
在获得有关此answer的帮助之后,我不理解如何在托管配置中使用默认值。我的参考是这个link。
在我的“注释”下的参考中,Google表示:“托管配置捆绑包对于由托管配置提供程序明确设置的每个配置都包含一个项目。但是,您不能假设某个配置会出现在捆绑软件中是因为您在托管配置XML文件中定义了默认值。”
我了解,如果托管配置提供者未明确设置项目,则该项目将不在捆绑包中。但是下一条(最后一条)对我来说还不清楚。
我的主要问题是“托管配置XML文件中defaultValue的目的是什么?”?但我希望答案也能帮助回答或指导我回答以下问题:
谁可以读取defaultValue?
托管应用可以阅读吗?如果是这样,怎么办?
托管配置提供程序可以读取它吗?如果是这样,怎么办?
如果具有默认值,为什么不能假设配置会出现在捆绑销售商品中?托管配置提供程序是否负责读取defaultValue然后显式设置它?
最佳答案
如果管理应用程序未明确设置属性,则可以使用defaultValue
字段解释应用程序的行为。
清单中引用的XML文件旨在供MDM使用,以在其控制台中显示UI,以便IT管理员可以配置您的应用程序。如果您为属性设置defaultValue
,则在首次配置您的应用时,MDM会预先填充相应的字段(例如,显示默认为true
的布尔属性的选中复选框)。
对于管理员,未配置您的应用程序应与使用默认配置对其进行配置相同。因此,为保持一致,无论属性是未设置还是设置为defaultValue
,您的应用程序都应具有相同的行为。
要查看配置在MDM控制台中的外观,可以使用Android Management Experience demo。
编辑:有关如何检索限制模式和defaultValue
的更多详细信息
可以检索XML文件中定义的应用程序限制架构
使用Google Play EMM API getAppRestrictionsSchema方法为每个限制返回defaultValue
或设备上使用RestrictionsManager.getManifestRestrictions的任何应用程序,其中返回的RestrictionEntry
的值如果在XML文件中指定,则将其值设置为defaultValue
,否则将其设置为通用默认值(对于0
,TYPE_INTEGER
,false
表示TYPE_BOOLEAN
等)。您可以在AOSP的RestrictionManager.java中阅读此方法的完整逻辑,并了解如何在TestDPC的ManageAppRestrictionsFragment.java中使用该方法。
关于android - Managed Configurations XML文件中defaultValue的用途是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45202858/