您的位置:首页 > 移动开发 > Android开发

Android 永久隐藏导航栏,系统栏的方法

2017-11-30 10:53 323 查看
文章来自:http://blog.csdn.net/moliyll/article/details/41945083

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();  

       }  

   }  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: