作为设备所有者的屏幕固定不起作用
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 配置设备。
我正在尝试使用 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 配置设备。