如何限制/禁用Android中的打印服务?

时间:2016-08-10 21:23:56

标签: 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. 通过编写设备策略控制器(DPC)应用程序:为了实现特定用例,DPC必须作为设备所有者运行,在这种情况下,配置需要通过NFC完成,并不简单。此外,此方案通常适用于公司拥有的单一用途(COSU)设备。
  3. 所以我的疑问/怀疑是 -

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

1 个答案:

答案 0 :(得分:0)

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

    您可以查看Google出色的项目TestDPC,该项目将使您对什么是DPC以及如何使用它有深入的了解。

    您可以阅读有关Android documentation中的配置方法的更多信息。另外,如果您可以联系设备制造商,则可以要求他预安装自定义dpc。

  2. 这是可以实现的,并且没有违反Android安全模型,因为在配置您的dpc应用程序期间,它会获得Device Owner(根)。因此,您可以无限制地执行任何操作。 Here您可以检查设备所有者的API和可能性。还要看一下TestDPC的源代码,您将了解在Device owner模式下没有什么不可能:)