Android 中不同的系统版本隐藏和显示systemui方法
来源:互联网 发布:最新网络词语 编辑:程序博客网 时间:2024/05/18 06:25
公司最近来了一批四核的平板,刚开始以为是四核平板和二核平板的差异,导致systembar不能隐藏和正常显示。经过调查才发现,是android系统的版本问题。知道问题的所在,解决起来也就快了。
public void showSystembar(boolean makeVisible) { checkInitialized(); try { // get the existing environment ArrayList<String> envlist = new ArrayList<String>(); Map<String, String> env = System.getenv(); for (String envName : env.keySet()) { envlist.add(envName + "=" + env.get(envName)); } String[] envp = (String[]) envlist.toArray(new String[0]); // depending on makeVisible, show or hide the bar if (makeVisible) { Log.v(TAG, "showBar will show systembar"); // execute in correct environment String command; Device dev = Device.getInstance(); if (dev.getAndroidVersion() == AndroidVersion.HC) { command = "LD_LIBRARY_PATH=/vendor/lib:/system/lib am startservice -n com.android.systemui/.SystemUIService"; //The four nucleus Tablet hide or display systemui } else if(dev.getAndroidVersion() == AndroidVersion.JELLYBEAN4_2) { command = "su -c am startservice -n com.android.systemui/.SystemUIService "; //The four nucleus Tablet hide or display systemui } else { command = "rm /sdcard/hidebar-lock\n" + "sleep 5\n" + "LD_LIBRARY_PATH=/vendor/lib:/system/lib am startservice -n com.android.systemui/.SystemUIService"; } //The four nucleus Tablet hide or display systemui if(dev.getAndroidVersion() == AndroidVersion.JELLYBEAN4_2) { Runtime.getRuntime().exec(command); } else{ Runtime.getRuntime().exec(new String[] { "su", "-c", command }, envp); } //The four nucleus Tablet hide or display systemui // no proc.waitFor(); // we just shown the bar, set flag to visible mSystembarVisible = true; } else { Log.v(TAG, "showBar will hide the systembar"); // execute in correct environment String command; Device dev = Device.getInstance(); if (dev.getAndroidVersion() == AndroidVersion.HC) { command = "LD_LIBRARY_PATH=/vendor/lib:/system/lib service call activity 79 s16 com.android.systemui"; //The four nucleus Tablet hide or display systemui } else if(dev.getAndroidVersion() == AndroidVersion.JELLYBEAN4_2) { command = "su -c service call activity 42 s16 com.android.systemui"; //The four nucleus Tablet hide or display systemui } else { command = "touch /sdcard/hidebar-lock\n" + "while [ -f /sdcard/hidebar-lock ]\n" + "do\n" + "killall com.android.systemui\n"// + "sleep 1\n" + "usleep 500000\n" + "done\n" + "LD_LIBRARY_PATH=/vendor/lib:/system/lib am startservice -n com.android.systemui/.SystemUIService"; } //The four nucleus Tablet hide or display systemui if(dev.getAndroidVersion() == AndroidVersion.JELLYBEAN4_2) { Runtime.getRuntime().exec(command); } else{ Runtime.getRuntime().exec(new String[] { "su", "-c", command }, envp); } //The four nucleus Tablet hide or display systemui // no proc.waitFor(); // we just hide the bar, set flag to not visible mSystembarVisible = false; } } catch (Exception e) { e.printStackTrace(); } }其他的方法:
public enum AndroidVersion { //The four nucleus Tablet hide or display systemui HC, ICS, JB, JELLYBEAN4_2, UNKNOWN //The four nucleus Tablet hide or display systemui }; public AndroidVersion getAndroidVersion() { checkInitialized(); Log.v(TAG, "getAndroidVersion called"); int sdk = android.os.Build.VERSION.SDK_INT; if (11 <= sdk && sdk <= 13) { Log.v(TAG, "We are running on HoneyComb"); return AndroidVersion.HC; } else if (14 <= sdk && sdk <= 15) { Log.v(TAG, "We are running on IceCreamSandwich"); return AndroidVersion.ICS; } else if (16 == sdk) { Log.v(TAG, "We are running on JellyBean"); return AndroidVersion.JB; //The four nucleus Tablet hide or display systemui } else if(17 <= sdk) { Log.v(TAG, "We are running on JellyBean4.2"); return AndroidVersion.JELLYBEAN4_2; //The four nucleus Tablet hide or display systemui } else { Log.v(TAG, "We don't know what we are running on"); return AndroidVersion.UNKNOWN; } }记录一下。嘿嘿。。。
0 0
- Android 中不同的系统版本隐藏和显示systemui方法
- Android 隐藏 SystemUI 全屏显示
- Android中控制SystemUI 中任务栏的的显示与隐藏
- Android中系统状态栏的隐藏和显示
- Android中系统状态栏的隐藏和显示
- Android不同版本的API方法使用和Android系统版本对应的API版本号
- ANDROID 隐藏 任务栏 systemui systembar 全屏显示
- ANDROID 隐藏 任务栏 systemui systembar 全屏显示
- ANDROID 隐藏 任务栏 systemui systembar 全屏显示
- ANDROID 隐藏 任务栏 systemui systembar 全屏显示
- android 系统状态栏的隐藏和显示
- 关于 显示和隐藏 Android 的方法
- android N版本 SystemUI显示问题。
- SystemUI中状态栏跟导航栏隐藏显示控制方法及效果示例
- SystemUI中状态栏跟导航栏隐藏显示控制方法及效果示例
- Android中控件的隐藏和显示
- Android系统应用---SystemUI之三:状态栏电池图标的显示和Android电池管理的探讨
- 在系统菜单中添加显示和隐藏标题栏的方法!
- Linux下清除缓存 drop_caches, sysctl
- 10397 - Connect the Campus
- 征服 Mongodb 之 主从复制&集群复制
- performSelector延时调用
- 在Spring、Hibernate中使用Ehcache缓存
- Android 中不同的系统版本隐藏和显示systemui方法
- 寻找矩阵中的鞍点<二维数组>
- (2) flume 入门学习 HelloWorld 及HDFS 遇到的问题 总结
- java class生成jar包
- ArcGIS教程:ArcGIS地质图矢量化技巧概要
- fatal: Not a git repository (or any of the parent directories): .git
- 图的广搜、深搜及拓扑排序
- iOS 资源精选(一)
- Search a 2D Matrix