You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Management API:如何通过configurationVariables让应用获取设备ID

获取ManagedConfigurationTemplate中configurationVariables的deviceId值

核心逻辑

你通过configurationVariables传入的deviceId,会根据ManagedConfigurationTemplate的定义替换模板里的变量占位符,最终成为应用托管配置的一部分。应用只需按常规方式读取托管配置即可拿到该值。

具体步骤

  1. 确认模板变量与配置项的关联
    在你定义的ManagedConfigurationTemplate(即abc123对应的模板)中,必须将deviceId变量关联到某个具体的配置项键。比如模板的schema里有一个配置项(假设键为app_device_id),其默认值或可选值使用${deviceId}作为占位符。只有这样,策略中传入的deviceId才会被注入到这个配置项中。

  2. 在Android应用中读取托管配置
    使用系统的DevicePolicyManager获取应用的托管配置,从中提取对应键的值:

    Kotlin代码示例:

    val devicePolicyManager = getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager
    val restrictions = devicePolicyManager.getApplicationRestrictions(packageName)
    val deviceId = restrictions.getString("app_device_id") // 这里的键要和模板中关联的配置项键一致
    

    Java代码示例:

    DevicePolicyManager devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
    Bundle restrictions = devicePolicyManager.getApplicationRestrictions(getPackageName());
    String deviceId = restrictions.getString("app_device_id");
    
  3. 注意事项

    • 确保应用已通过Android Management API作为托管应用部署到设备上,否则无法获取到托管配置。
    • 模板中的变量占位符格式必须正确(${变量名}),否则变量值不会被替换注入。

内容的提问来源于stack exchange,提问作者Mobile Dan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 20:42:53