如何使用Android-L预览任务锁定?

时间:2014-10-14 10:36:46

标签: android android-5.0-lollipop kiosk kiosk-mode

有没有人在Android L中使用任务锁定工作?他们可以分享一些有关它如何运作的细节吗?我已经看到了下面的说明,但很难理解这一点。

目前我已经制作了一个我希望在自助服务终端模式下运行的应用程序。我已经看过它是一个启动器应用程序或使用Surelock,但新的任务锁定看起来将来是最好的选择。

我需要创建一个Android L的userdebug版本?我以前没有从源代码构建Android,我开始考虑制作一个版本,但我不认为Android-L的源代码可用吗?

To set up a device owner, follow these steps:

Attach a device running an Android userdebug build to your development machine.
Install your device owner app.
Create a device_owner.xml file and save it to the /data/system directory on the device.

$ adb root
$ adb shell stop
$ rm /tmp/device_owner.xml
$ echo "<?xml version='1.0' encoding='utf-8' standalone='yes' ?>">> /tmp/device_owner.xml
$ echo "<device-owner package=\"<your_device_owner_package>\"name=\"*<your_organization_name>\" />" >> /tmp/device_owner.xml
$ adb push /tmp/device_owner.xml /data/system/device_owner.xml
$ adb reboot

https://developer.android.com/preview/api-overview.html

修改:更多信息

我尝试使用运行Android-L预览版的设备(Nexus 7)。然后我将一个带有我的包名的device_owner.xml放在data / system /中。但它仍然不起作用,islockTaskPermited()返回false,并且调用startLockTask()不执行任何操作。

2 个答案:

答案 0 :(得分:6)

Task Locking API

获取Snip

enter image description here

很明显,如果存在device_owner.xml,startLockTask()api将是hv效果。

如何检查我的应用是否为设备所有者?

当您的应用是设备所有者时,您的应用是设备管理员选项将被选中,复选框将显示为灰色,因此不允许您取消勾选该复选框。

enter image description here

您需要在推送device_owner.xml

时为系统提供权限

按照以下步骤操作:

  1. 创建device_owner.xml [确保应用程序将在您之前出现 push device_owner.xml]
  2. 导航到终端中存在device_owner的路径
  3. adb push device_owner.xml / sdcard /
  4. adb shell
  5. cp /sdcard/device_owner.xml / data / system /
  6. cd / data / system /
  7. chown system:system device_owner.xml
  8. 重新启动

答案 1 :(得分:2)

使用以下内容制作文件device_owner.xml,替换相应的包名称

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<device-owner package="com.your.packagename" name="Yourname" />

adb push device_owner.xml /data/system/device_owner.xml 重启设备。

来自com.your.packagename app call

startLockTask(); 

来自您的活动

即使您没有userdebug,也可以通过调用startLockTask来测试它,而无需推送任何文件