android - 如何在 Android 中限制/禁用打印服务)?

标签 android device-admin device-policy-manager android-print-framework android-for-work

我正在尝试实现一个用例,在该用例中,在安装应用程序时,Android 设备上的所有打印服务都会被禁用。

为了实现这一点,我研究了 Android 的 Device Administration API 功能,但不满足用例。我还查看了 Google 的 Android for Work框架并得出以下观察结果/可能的解决方案 -

  1. 通过设置托管配置文件(工作配置文件):这是从 Android 5.0 引入的,但只能管理列出/企业控制的应用程序,无法控制以下链接中提到的其他应用程序 -
  2. 通过编写设备策略 Controller (DPC) 应用程序:要实现特定用例,DPC 必须作为设备所有者运行,在这种情况下,需要通过 NFC 完成配置,这并不简单。此外,这种情况通常适用于公司拥有的一次性 (COSU) 设备。

所以我的问题/疑问是 -

  1. 是否有任何直接的方法可以实现此用例?
  2. 这是否可以实现,因为它违反了 Android 安全模型?

最佳答案

  1. 您应该编写您的自定义 DPC。现在您可以使用多种方法进行配置。如果您有使用 Android 7 及更高版本的设备,您可以使用二维码配置,这非常方便。为此,您可以将您的 dpc apk 上传到远程服务器,并将有关服务器、应用程序 DeviceAdminReceiver 和 apk 校验和的信息写入 QR 码(您可以以 this QR 码为例)。

    你可以查看google awesome project TestDPC这将使您深入了解什么是 DPC 以及如何使用它。

    您可以在 android documentation 中阅读有关配置方法的更多信息.此外,如果您可以联系设备制造商,您可以要求他预装您的自定义 DPC。

  2. 这是可以实现的,并且不会违反 Android 安全模型,因为在配置您的 dpc 应用程序期间,它会获得 Device Owner (root)。所以你可以不受任何限制地做任何事情。 Here您可以检查设备所有者 API 和可能性。另请查看 TestDPC源代码,你会明白在 Device owner 模式下没有什么是不可能的:)

关于android - 如何在 Android 中限制/禁用打印服务)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38883804/

相关文章:

android - 想要在应用程序启动时显示 admob 插页式广告

android - 在 android 和 ios 应用程序中显示图像的最可行方法

android - 世博打造EAS——

android-5.0-lollipop - 如何取消配置设备以设置设备所有者?

android - DevicePolicyManager.setApplicationHidden 的实际行为

android - 以编程方式固定第 3 方应用程序的屏幕

android - 一个服务能否绑定(bind)另一个服务

android - QR 配置后系统应用程序丢失

android - 如何将附加信息传递给 DeviceAdminReceiver?

android - 从服务运行 Intent DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN