7

私はルート化されたAndroidJellyBean Tabletを持っていて、システムバーを非表示にするコードを持つアプリケーションを実行しようとしていますが、非表示になっていないので、誰かがこれを手伝ってくれます。

ターミナルで出力を取得する: Result Parcel(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();
                    }
            }
        });
    }
} 

私は許可の乾杯を取得していますが:ここに画像の説明を入力してください

スーパーユーザーログのスクリーンショット: ここに画像の説明を入力してください

4

2 に答える 2

22

ICSが導入されたとき、クラスのプロセスIDはSystemUI79から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","-c","service call activity "+ ProcID +" s16 com.android.systemui"}); //WAS 79
    proc.waitFor();

}catch(Exception ex){
    Toast.makeText(getApplicationContext(), ex.getMessage(), Toast.LENGTH_LONG).show();
}
于 2012-12-17T22:55:27.510 に答える
2

ルート権限を取得する方法と、Android4.2でもシステムバーを表示/非表示にする方法を説明する記事を書きました

http://masashi-k.blogspot.com/2013/09/hide-show-system-bar-of-android.html

RootToolsライブラリを使用してroot権限を取得します。 ここに画像の説明を入力してください

システムバーを非表示にする ここに画像の説明を入力してください

于 2013-09-20T23:52:30.097 に答える