如何查找应用程序对DevicePolicyManager.setApplicationRestrictions的可用限制

时间:2014-11-01 13:09:30

标签: android google-chrome android-5.0-lollipop device-policy-manager

新的Android Lollipop API提供了一对新的获取和设置其他应用限制的方法:DevicePolicyManager.getApplicationRestrictionsDevicePolicyManager.setApplicationRestrictions

通过传递一组似乎与BasicManagedProfile sample app相关的键/值对,Chrome's published policy list中有一个示例用于设置对Chrome应用的限制。这对我很有用。

但我找不到任何其他可以通过这种方式限制的应用程序的文档。有没有人知道可以用这些方法限制的任何其他应用程序,以及可以设置的键?

DevicePolicyManager.getApplicationRestrictions似乎只返回您已为该应用设置的限制,而不是所有可用限制的列表。我也尝试在Chrome上使用RestrictionsManager.getManifestRestrictions,但这会返回一个空列表,所以我认为这是不同的。

1 个答案:

答案 0 :(得分:1)

我建议您阅读Google的文档,了解如何构建Work policy controller

托管应用程序将包含清单中声明的​​限制文件。企业移动管理合作伙伴可以使用Google Play API检索此信息。 阅读Implementing App Restrictions

以下步骤可用于查找Android应用程序中的可用限制:

  • 从设备上获取apk。示例:使用以下步骤:

    $ adb shell pm path com.android.chrome
    package:/data/app/com.android.chrome-2/base.apk
    $ adb pull /data/app/com.android.chrome-2/base.apk
    4722 KB/s (32575247 bytes in 6.735s)
    
  • 解压缩apk文件。在app_restrictions.xml文件夹中查找res/文件。

  • 使用aapt工具从apk中检索此文件的内容。例如:

    aapt d xmltree DivideProductivity_1.2_RC05_6-1.apk res/xml/app_restrictions.xml
    aapt d xmltree base.apk res/xml-v21/app_restrictions.xml
    

请注意,使用此机制,您只能查看限制键。您将需要限制类型和其他详细信息来实际设置托管应用程序的限制。正确的方法是使用来自服务器的Google Play API。