Andrid 永久隐藏导航栏与系统栏
程序员文章站
2022-07-13 15:59:00
...
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();
}
}
下一篇: POI之HSSF初探