有没有办法从应用程序中获取Android管理API设备ID?

10

我正在尝试开发Android Management API + kiosk app。

我想从kiosk应用程序中获取设备ID(enterprises/xxxxx/devices/xxxxx
我的目的是将设备ID与应用程序中创建的kiosk应用程序ID关联起来。

我能否从kiosk应用程序中获取设备ID?是否有其他解决方案?


2
我不确定您是否可以直接从您的Kiosk应用程序中获取“设备ID”。但是,您可以为Kiosk应用程序创建托管配置,然后通过它推送“设备ID”。 - Florian
1
我也建议使用托管配置,我在下面添加了更详细的答案来解释它。 - Fred
3个回答

5

您的应用程序不能直接访问设备ID。

但是,您可以通过在应用程序中公开受管理的配置并使用一个字符串进行配置,在每个设备上为ApplicationPolicy设置不同的策略来实现类似的结果。 受管理的配置可以包含一个字符串属性,您可以将其设置为每个设备的设备ID。

在您的应用程序中,受管配置文件应如下所示:

<restrictions xmlns:android="http://schemas.android.com/apk/res/android">

  <restriction
    android:key="deviceId"
    android:title="ID of the device"
    android:restrictionType="string" />

</restrictions>

该政策将是:

{
  "applications": [
    {
      "packageName": "com.example",
      "installType": "FORCE_INSTALLED",
      "managedConfiguration": {
        "deviceId": "1a2b3c4d5e6f"
      }
    }
  ]
}

此外,为了在新设备注册时尽快设置策略,您可以设置Pub/Sub通知并监听ENROLLMENT事件,通知的data字段包含一个带有设备ID的Device资源,因此允许您创建一个新策略并将其分配给该设备。

4
虽然这种方法可以使用,但是有些麻烦。是否可以使用Android Management API,并拥有一个自定义开发的应用程序来获取更多关于设备、企业等方面的权限和信息,从而与DPC进行交互? - Hameno
@Hameno,你是否已经找出从Android应用程序中检索额外信息(例如设备、企业)的可能性? - H.T. Koo
3
你们能否从安卓应用程序中获取详细信息? - Prasanth Ravi
1
这非常有限制性,不是吗?如果某个策略更改应用于“X”设备,则应该修补“X”策略(而不仅仅是1个)。 有没有办法绕过这个问题? - Bliss
这太过复杂了。我们只需要一个非常基础的东西。如果我需要从一个用户中移除策略,我怎么知道这个用户的设备呢?管理 API 团队应该提供一种简单的方法。 - Cembora
这个问题解决了吗?在设备注册后,有可能获取托管设备的唯一标识吗? - Alon Minski

1
我不同意这个解决方案,据我所知,人们会从设备上阅读政策信息并将其映射到Kiosk应用程序中。

0

您可以轻松地从应用程序中获取设备ID。只需搜索如何获取“Google服务框架ID”,您就会知道两者是相同的。如果这解决了您的问题,请告诉我...!


目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community
这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - Rumit Patel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接