android – 在Jelly Bean平板电脑中隐藏系统栏(生根)

我有一个 Android Jelly Bean平板电脑已经扎根并且试图运行一个应用程序,其中包含隐藏系统栏的代码,但它没有被隐藏,任何人都可以帮助我解决这个问题.

获取终端输出:结果包(00000000’….’)

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button hide=(Button)findViewById(R.id.button1);
        Button show=(Button)findViewById(R.id.button2);
        hide.setonClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // Todo Auto-generated method stub
                 Log.v("ds","hideSystembar");
                    try {
                        Process proc = Runtime.getRuntime().exec(new String[]{
                                "su","-c","service call activity 79 s16 com.android.systemUI"});
                        proc.waitFor();
                    } catch (Exception e) {
                        e.printstacktrace();
                    }
            }
        });
        show.setonClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // Todo Auto-generated method stub
                  Log.v("f","showSystembar");
                    try {
                        Process proc = Runtime.getRuntime().exec(new String[]{
                                "am","startservice","-n","com.android.systemUI/.systemUIService"});
                        proc.waitFor();
                    } catch (Exception e) {
                        e.printstacktrace();
                    }
            }
        });
    }
}

虽然我正在获得许可的祝酒:

超级用户日志屏幕截图:

解决方法

当引入ICS时,systemUI类的进程ID从79更改为42.下面的代码适用于您的应用可能正在运行的任何Android版本.
//HIDE TOOLBAR
try{
    //REQUIRES ROOT
    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
    }

    //REQUIRES ROOT
    Process proc = Runtime.getRuntime().exec(new String[]{"su","service call activity "+ ProcID +" s16 com.android.systemUI"}); //WAS 79
    proc.waitFor();

}catch(Exception ex){
    Toast.makeText(getApplicationContext(),ex.getMessage(),Toast.LENGTH_LONG).show();
}

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...