6

内部アプリケーションで使用するために、ランチャーを作成しました。いくつかのセキュリティ上の理由から、システムバー(パラメータへのアクセス、インストールされたアプリケーションへのアクセスへのオードラー)を非表示にしたいと思います。しかし、私はこれを行う方法がわかりません。使用されるタブレットはroot化されていません。手伝ってくれませんか。

4

5 に答える 5

13

非表示にすることはできませんが、ホーム以外は無効にすることができます。そのために、アプリケーションをホームカテゴリとして指定し、ユーザーに選択させることができます。

<category android:name="android.intent.category.HOME" />

残りはすべて無効にすることができます。

これをマニフェストに追加します。

<uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>

onCreate()内

this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_home);
    View v = findViewById(R.id.home_view);
    v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);

ここで、home_viewはxmlファイルの親ビューです。

 @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
            return false;
        }

 public void onWindowFocusChanged(boolean hasFocus)
     {
             try
             {
                if(!hasFocus)
                {
                     Object service  = getSystemService("statusbar");
                     Class<?> statusbarManager = Class.forName("android.app.StatusBarManager");
                     Method collapse = statusbarManager.getMethod("collapse");
                     collapse .setAccessible(true);
                     collapse .invoke(service);
                }
             }
             catch(Exception ex)
             {
             }
     }
于 2013-03-27T05:48:39.543 に答える
8

このコードを使用して非表示にした下部のバーを非表示にできます。

getWindow().getDecorView().setSystemUiVisibility(View.GONE);

キーボードまたはリモートを備えたAndroidボックスにこのコードを使用します。

于 2013-09-13T08:34:54.537 に答える
5

使用されるタブレットはroot化されていません

その後、それを隠すことはできません。ただしSYSTEM_UI_FLAG_HIDE_NAVIGATION 、一時的に非表示にするために使用できますが、ユーザーが画面に触れると表示されます。

制限があります。ナビゲーションコントロールは非常に重要であるため、ユーザーの操作が最も少ないと、すぐに再表示されます。これが発生すると、このフラグとの両方SYSTEM_UI_FLAG_FULLSCREENが自動的にクリアされるため、両方の要素が同時に再表示されます。

于 2013-02-10T19:56:38.767 に答える
1

Android 4.0以降では、SYSTEM_UI_FLAG_HIDE_NAVIGATIONフラグを使用してナビゲーションバーを非表示にできます。このスニペットは、ナビゲーションバーとステータスバーの両方を非表示にします。

View decorView = getWindow().getDecorView();
// Hide both the navigation bar and the status bar.
// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
// a general rule, you should design your app to hide the status bar whenever you
// hide the navigation bar.
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
              | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions

以下を参照してください:ナビゲーションバーを非表示にする

于 2015-02-23T20:57:56.697 に答える
0

これをonCreate()メソッドに入れます。

requestWindowFeature(Window.FEATURE_NO_TITLE);

編集:ステータスバーを非表示にするには、アプリケーションを全画面表示にするか、ルート化する必要があります。

于 2013-02-10T19:55:46.657 に答える