作为设备所有者的屏幕固定不起作用

Screen pinning as device owner not working

我正在尝试使用 android 5 的屏幕固定功能构建一个信息亭应用程序。似乎我需要在应用程序中做的就是调用 startLockTask(),但这仍然允许用户通过按最近和后退按钮离开应用程序。

要以不允许用户离开的方式固定应用程序,需要该应用程序是设备所有者。基于sites such as this one,需要运行

adb shell dpm set-device-owner my.package.name/.MyAdminReceiver

以便设置设备所有者。但是,该命令失败

java.lang.IllegalStateException: Trying to set device owner but device is already provisioned.

据我所知,这是由文件 /data/system/device_owner.xml 已经存在于设备上引起的。

由于设备刚刚恢复出厂设置,我怀疑它附带了制造商已经配置的应用程序,因此我对设备进行了 root 操作。我宁愿在没有生根的情况下这样做(因为我必须 运行 在大约 70 台设备上执行此过程)但是出于研究目的,这无济于事。

root 设备后,我试图找到 device_owner.xml 文件,但它不存在。我尝试基于 this answer 创建一个,但该应用程序仍然显示固定消息并且最近+后退按钮仍然取消固定该应用程序。

为什么我不能设置设备所有者?有什么解决办法吗?

虽然我确实在新重置的设备上尝试了 dpm 配置,但@basilisk 的评论暗示了我答案。该设备预装了提供默认帐户的英国媒体报道软件。禁用这些应用程序最终让我可以使用 dpm 配置设备。