【问题标题】:Android NFC Provisioning and installing in house corporate appsAndroid NFC 配置和安装内部企业应用程序
【发布时间】:2015-10-10 01:53:46
【问题描述】:

我的公司希望向员工分发平板电脑仅供公司使用,但希望为他们设置某些权限、自定义应用程序和自定义启动器。

所以我已经掌握了基础知识,因为我有一个使用 NFC 来配置新平板电脑的应用程序。我浏览了 DevicePolicyManager API 页面,但没有看到我想做的一些事情。我不确定的是以下内容,所以如果人们能指出我正确的方向,那就太好了!

1) 我可以使用此配置过程来安装自定义启动器并将其设为默认启动器吗?

2) 我可以通过此流程推送多个企业应用吗?即为我需要安装的所有应用程序多次设置 EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME 属性?阅读 API 听起来您只设置了一次。

3) 发送的应用程序是否必须通过 URL,或者原始平板电脑是否可以用于启动配置过程,这些应用程序是否可以通过给定的 API 发送?现在我正在使用一个 URL 并托管了一个测试应用程序,但是如果有其他方法会很高兴知道。

4) 一个更基本的问题,但这是否意味着将应用设置为设备所有者?与将要安装的其他公司应用程序相比,该应用程序应该做什么?如果它只是管理策略,那么它是否需要手动执行,或者它是否始终以某种方式运行,即使在重新启动后也会设置策略?

5) 如果某些应用程序希望在执行时处于 kiosk 模式直到重新启动是要求设备所有者应用程序调用 setLockTaskPackages() 的正确方法,并且可能的应用程序要连接到 kiosk?

我可能还有更多问题,但目前我能想到的只有这些。感谢您的任何回答。

【问题讨论】:

    标签: android nfc android-6.0-marshmallow device-policy-manager


    【解决方案1】:

    是的,您可以使用 NFC 设置您自己的设备所有者 (DO) 或配置文件所有者 (PO) 设备管理员,请参阅:

    Activate a device owner using NFC on Android Lollipop

    1. 使用 NFC,您无法直接配置自定义启动器,但您可以配置下载和安装启动器的设备管理应用程序。设备管理应用程序还可以使用 DevicePolicyManager 中的所有策略以及所有标准公共 API,例如安装应用程序,请参阅:

    Install Application programmatically on Android

    1. 不可以,设备中只能有一个 DO 或 PO。但是,可以是既不是 DO 也不是 PO 的多个设备管理应用程序。

    2. 您可以发送 URL 或提供已安装应用程序的包名称。

    3. 设备管理员设置的策略由 DevicePolicyManager 存储在 xml 文件中。重新启动期间会保留这些策略。

    4. 是的,设备管理员可以使用 setLockTaskPackages() 来启用应用程序的信息亭模式。

    希望这会有所帮助。

    /Marek Pola,索尼移动。

    【讨论】:

    • 因此,如果我让我的设备管理应用程序下载并安装启动器,是否有办法将其设为默认值,或者这是用户步骤?感谢您的回复
    • 查看您以编程方式安装应用程序的链接看起来需要用户交互。有没有办法在没有用户交互的情况下做到这一点?我们将设置 1000 多台平板电脑,自动化程度越高越好。
    • 关于 laucher,请检查这是否回答了您的问题:stackoverflow.com/a/27992345/3852769 /Marek Pola, Sony Mobile
    • AFAIK,无法使用 vanilla API 静默安装应用程序。在 Android for Work 或 Google Edu 中是可能的,但他们为此添加了额外的平台支持。但是,可能有专有的 API 可以做到这一点。 /Marek Pola,索尼移动。
    • @Brian,我开发了一个应用程序来完全满足您的需求……它更多地用于教育目的,但可以修改为适合您。建议您访问 manageclass.com 披露:我确实与他们有关联
    【解决方案2】:

    Marek 已经回答了大部分问题。 我希望您发现在某些情况下您可以静默安装 APK。

    此处显示了一个示例: https://github.com/wso2/product-emm/blob/master/modules/mobile-agents/android/system-service/app/src/main/java/org/wso2/emm/system/service/utils/AppUtils.java

    基本上,您只需通过反射调用 PackageManagers installPackage 方法 - 当执行此操作的应用程序具有所需的权限时(取决于 android 版本、应用程序运行的用户、应用程序的签名等),它将在后台执行。

    我知道它适用于系统应用程序/签名应用程序。 由于上面的示例来自 EMM/MDM 解决方案,我假设您可以在您是 DO/PO 时调用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-02
      • 2015-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多