public void showSystembar(boolean makeVisible) {
checkInitialized();
try {
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]);
if (makeVisible) {
Log.v(TAG, "showBar will show systembar");
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";
} else if(dev.getAndroidVersion() == AndroidVersion.JELLYBEAN4_2) {
command = "su -c am startservice -n com.android.systemui/.SystemUIService ";
} else {
command = "rm /sdcard/hidebar-lock\n"
+ "sleep 5\n"
+ "LD_LIBRARY_PATH=/vendor/lib:/system/lib am startservice -n com.android.systemui/.SystemUIService";
}
if(dev.getAndroidVersion() == AndroidVersion.JELLYBEAN4_2) {
Runtime.getRuntime().exec(command);
} else{
Runtime.getRuntime().exec(new String[] { "su", "-c", command }, envp);
}
mSystembarVisible = true;
} else {
Log.v(TAG, "showBar will hide the systembar");
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";
} else if(dev.getAndroidVersion() == AndroidVersion.JELLYBEAN4_2) {
command = "su -c service call activity 42 s16 com.android.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";
}
if(dev.getAndroidVersion() == AndroidVersion.JELLYBEAN4_2) {
Runtime.getRuntime().exec(command);
} else{
Runtime.getRuntime().exec(new String[] { "su", "-c", command }, envp);
}
mSystembarVisible = false;
}
} catch (Exception e) {
e.printStackTrace();
}
}