web-dev-qa-db-ja.com

Androidプログラムでステータスバー/通知バーを無効にする方法は?

ロック画面アプリケーションを作成します。このアプリケーションはSMSによってトリガーされます。SMS含むコマンドを受信すると、ロック画面アクティビティが表示されます。

私のロック画面アクティビティは、ホーム画面ボタンを無効にするためにTYPE_KEYGUARDを使用しています。デバイスの画面をオフにしてから再度オンにすると、ステータスバー/通知バーが画面に表示されたままになります。デバイスがロックされている場合でも、ユーザーはステータスバー/通知バーを介して一部のプログラムにアクセスできるため、これは問題です。だから私はこのステータスバー/通知バーを消して、ユーザー(盗難)がそのデバイスにアクセスできなくなるようにしたいのです。これを解決するのを手伝ってください。

14
Michael

あなたがやろうとしているのは、プログラムでアクティビティをフルスクリーンに設定することだと思います。その場合は、次のことを考慮してください。

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                     WindowManager.LayoutParams.FLAG_FULLSCREEN);

出典: http://www.androidsnippets.com/how-to-make-an-activity-fullscreen

12
shanet
  public void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);
      getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
      getWindow().requestFeature(Window.FEATURE_NO_TITLE);
}
6
jazz
requestWindowFeature(Window.FEATURE_NO_TITLE);

アクティビティのタイトルバーのみを無効にし、上部の通知バーは無効にしません。

このテーマをAndroidマニフェストでアクティビティに使用してください:

"Theme.NoTitleBar.Fullscreen"

私のために働いた。

通知バーを非表示にします。

6
alchemist

オンAndroid 4.0以下

オプション1:

<application
    ...
    Android:theme="@Android:style/Theme.Holo.NoActionBar.Fullscreen" >
    ...
</application>

オプション2:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // If the Android version is lower than Jellybean, use this call to hide
        // the status bar.
        if (Build.VERSION.SDK_INT < 16) {
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }
        setContentView(R.layout.activity_main);
    }
    ...
}

on Android 4.1以降

View decorView = getWindow().getDecorView();
// Hide the status bar.
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
// Remember that you should never show the action bar if the
// status bar is hidden, so hide that too if necessary.
ActionBar actionBar = getActionBar();
actionBar.hide();

また、Android 4.6(Api 19)以降の場合は 没入型フルスクリーンモード

Googleからの参照

4
Ilya Gazman