android – 以编程方式在AOSP Build上启用禁用系统UI
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了android – 以编程方式在AOSP Build上启用禁用系统UI,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1773字,纯文字阅读大概需要3分钟。
内容图文
我已经使用Android 4.4.4源构建了我的AOSP自定义ROM.我想做一个自助服务终端模式应用程序(总是全屏 – 用户不可能离开它或切换到另一个应用程序).
为了拥有完整的沉浸式模式,我遵循了这个SO Enabling KioskMode in Android 4.4.2 with Root
我完全按照他们的说法完成,但它不起作用.系统UI未禁用,我没有错误.
所以我决定创建一个从Android SDK代码运行的.sh文件:
进程proc = Runtime.getRuntime().exec(new String [] {“su”,“ – c”,“/ etc / stop-ui.sh”});
它完美地运作.但是当我想再次启动系统UI时:
进程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,但不能以编程方式从app重启
解决方法:
我有这两种方法(在root手机上),他们完美地工作:
public static void hideSystemUi(){
try {
Build.VERSION_CODES vc = new Build.VERSION_CODES();
Build.VERSION vr = new Build.VERSION();
String ProcID = "79"; //HONEYCOMB AND OLDER
//v.RELEASE //4.0.3
if(vr.SDK_INT >= vc.ICE_CREAM_SANDWICH){
ProcID = "42"; //ICS AND NEWER
}
Process proc = Runtime.getRuntime().exec(new String[]{
"su","-c","service call activity " + ProcID + " s16 com.android.systemui"});
proc.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void showSystemUi(){
try {
Process proc = Runtime.getRuntime().exec("am startservice --user 0 -n com.android.systemui/.SystemUIService");
proc.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}
尝试在am startservice -n com.android.systemui / .SystemUIService命令中传递用户ID.在我的情况下,它是0(root用户ID).
内容总结
以上是互联网集市为您收集整理的android – 以编程方式在AOSP Build上启用禁用系统UI全部内容,希望文章能够帮你解决android – 以编程方式在AOSP Build上启用禁用系统UI所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。