5

タブレットの全画面でアプリを実行する必要があるタブレット専用のアプリケーションを開発しています。

このために、主なアクティビティで次のコードを使用しました。

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

このコード スニペットは、タイトル バーとアクション バーのみを削除します。ただし、タブレットでは、下部にシステム バーがあります (ホーム ボタンと戻るボタンがあります)。また、このシステム バーも削除または非表示にしたいと考えています。

検索しましたが、次の解決策しかありません。

  1. システム バーを削除または非表示にする API はありません。
  2. Android アプリを使用して、システム バーを非表示にすることができます。(例: Surelock、Hidebar など)

私の質問は:

  1. Androidでは本当にできないのですか?
  2. 利用可能なアプリの上 (つまり、surelock、バーを非表示にするなど) もバーを非表示にします。それは彼らがそうするために何かを使っていることを意味します。これをアプリで使用できるため、ユーザーはこれらのアプリを個別にダウンロードする必要がありません。

私を案内してください。

私はこれが良い考えではないことを知っています。しかし、私のアプリはAndroid 4.0以上のタブレット専用で、そのタブレットはこの単一のアプリのみを実行するため、戻ってホームボタンを使用する必要はありません. そのため、私の要件はアプリをフルスクリーンで使用することです。

4

4 に答える 4

8

Android API 4.0 以降では、次のコードを使用して下部のシステム バーを非表示にできます。

View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
          | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
于 2014-05-28T11:05:11.607 に答える
5

root アクセス権を持っていない限り、これは不可能です。または、 を作成することもできますlauncher application

そうしないと、システム/ナビゲーション バーを非表示にするアプリケーションの範囲を超えてしまいます。

于 2013-04-17T10:05:50.170 に答える
0

インターネットで多くの検索を行った後、次のコマンドを使用して、システム バーを非表示にして 4.2 デバイスに表示することができました。

隠れる:

Runtime.getRuntime().exec("service call activity 42 s16 com.android.systemui");

または、API が 14 未満の場合は 42 ではなく 79 を使用します。SET_DEBUG_APP パーミッションを含める必要がある場合もあります。その場合、アプリケーションをシステム キーで署名するか、/system/app/ ディレクトリにインストールする必要があります。

表示するには:

Runtime.getRuntime().exec("am startservice --user 0 -n com.android.systemui/.SystemUIService");

別の方法として、(-n の代わりに) -a オプションを使用した人もいますが、これは私のデバイスでエラーを引き起こしていました。

エラーはみつかりません; サービスは開始されていません。

于 2013-10-15T04:59:10.083 に答える