配置Managed Configurations后RestrictionManager返回空,如何从AMAPI获取数据?
Android Enterprise AMAPI 配置问题解答
1. RestrictionManager 能否读取 configurationVariables?
不能。configurationVariables仅用于定义配置项的类型模板,不会传递实际配置值到应用。RestrictionManager能读取的是managedConfiguration字段内的具体键值对,你当前将该字段设为null,自然返回空Bundle。
2. 是否需要配置 managedConfig iFrame?
不需要。managedConfig iFrame是给EMM控制台用于展示应用配置界面的组件,和应用接收数据的逻辑无关联。
3. 是否必须使用Managed Configuration Provider应用?
不是必须的。该应用用于辅助EMM动态生成配置界面,若你明确知晓要传递的配置键值,直接在AMAPI的managedConfiguration中设置具体值即可。
4. 不使用Managed Configuration Provider时,传递数据的最佳方式
直接在ApplicationPolicy的managedConfiguration字段中填入实际键值对,同时保证应用restrictions.xml里的android:key与该字段的键完全匹配。
修正后的配置示例:
应用端 restrictions.xml(保持原有配置即可)
<restrictions xmlns:android="http://schemas.android.com/apk/res/android"> <restriction android:key="test" android:title="test" android:restrictionType="string" android:description="@string/app_name" android:defaultValue="defaultValue"/> </restrictions>
AMAPI 端 ApplicationPolicy 配置
"managedConfiguration": { "test": "your_actual_target_value" }, "managedConfigurationTemplate": { "configurationVariables": { "test": "string" }, "templateId": null }, "minimumVersionCode": null, "packageName": "com.navita.smartinventory", "permissionGrants": null, "workProfileWidgets": null
额外注意事项
- 确保设备同步了最新的AMAPI策略,完全托管模式下通常自动同步,也可手动触发同步验证。
- 应用读取配置时,通过
RestrictionManager.getApplicationRestrictions()获取,建议在非主线程调用以避免ANR。
内容的提问来源于stack exchange,提问作者wilson mielke
相关产品推荐
相关产品推荐

