【发布时间】:2015-12-18 17:20:10
【问题描述】:
我使用 Android 4.4.4 源构建了我的 AOSP 自定义 ROM。我想做一个自助服务终端模式应用程序(始终全屏 - 用户不可能离开它或切换到另一个应用程序)。
为了获得完全沉浸式的模式,我关注了这篇 SO 帖子 Enabling KioskMode in Android 4.4.2 with Root
我完全按照他们说的做了,但它不起作用。系统 UI 未禁用,我没有错误。
所以我决定创建一个我从 Android SDK 代码运行的 .sh 文件:
Process proc = Runtime.getRuntime().exec(new String[] { "su", "-c", "/etc/stop-ui.sh" });
完美运行。但是当我想再次启动系统 UI 时:
Process proc = Runtime.getRuntime().exec(new String[] { "su", "-c", "/etc/start-ui.sh" });
它返回错误 1。
当我从 adb shell 运行 /etc/start-ui.sh 时,它可以工作。
这是我的 stop.sh(权限为 555)文件:
#!/system/bin/sh
service call activity 42 s16 com.android.systemui
这是我的 start.sh(权限为 555)文件:
#!/system/bin/sh
am startservice -n com.android.systemui/.SystemUIService
我的应用是系统应用(我使用平台签名对其进行了签名)
结论:我可以从 shell 重新启动系统 UI,但不能以编程方式从应用程序重新启动
【问题讨论】:
标签: android android-4.4-kitkat android-source kiosk-mode