5

タブレットの全画面でアプリを実行する必要がある場合、タブレット専用のアプリケーションを開発しています。このためアンドロイドタブレットの下部システムバーを隠す方法

私は私のメインの活動に次のコードを使用しています

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

このコードスニペットは、タイトルバーのみとアクションバーを削除します。しかし、タブレットには、下部システムバーがあります(ホームボタンとバックボタンがあります)。私はまた、このシステムバーを削除または隠したいと思う。

私が検索しましたが、唯一の解決策が以下の通りです:

  1. システムバーを削除または非表示に何のAPIはありません。
  2. いくつかのアンドロイドアプリを使用して、システムバーを非表示にすることができます。 (例えば: surelock、hidebar、など)

私の質問は:

  1. それはアンドロイドでは、実際に可能ではないですか?
  2. 上記の利用可能なアプリ(つまり、ロック、隠しバーなど)も隠しバーです。 これは彼らが何かを使ってそうすることを意味します。この アプリで使用できるので、ユーザーはこれらのアプリを別々にダウンロードする必要はありません。

私をご案内ください。

これは良い考えではありません。しかし、私のアプリはAndroid 4.0以上のタブレットのためのものであり、タブレットはこの単一のアプリだけを実行するので、戻る必要はありません。だから私の要件は、フルスクリーンでアプリを使用することです。

+1

システムバーを隠すことはお勧めできません。これは、ユーザーが実際にアプリケーションボタン/ホームボタンの動作を制御できるためです。 – hardartcore

+0

http://stackoverflow.com/a/12605313/931982 – stinepike

答えて

5

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

それ以外の場合は、システム/ナビゲーションバーを非表示にするアプリケーションの範囲外になります。

+0

「ルートアクセス権がある場合、またはランチャーアプリケーションを作成した場合のみ可能です」とはどういう意味ですか? ? –

+1

AndroidはLinuxベースのオペレーティングシステムです。 Linuxの場合と同様に、Androidにも2種類のユーザーがあります。1.スーパー/ rootユーザー2.通常のユーザー。あなたがrootユーザーのアクセス権を取得した場合や、Go Launcherなどのアプリケーションを作成した場合、あなただけが望むことができるようになります – Shrikant

+0

私は自分のアプリにroot権限でアクセスできますか?システムバーを隠すためのルートアクセス権があればどうしたらいいですか? –

9

あなたは賢明な他、このコードを使用することができますrootアクセス権を持っている場合は、

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(); 
} 

See this

+0

こんにちは、答えは完全に正常に動作します。しかし、私はバーをもう一度見せてもらえますか? – mesopotamia

0

インターネット上で検索をたくさんした後、私はシステムバーを非表示にするには得ることができ許可されていません

を非表示にするには::と使用4.2デバイスに表示され

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

または14のAPIに42の代わりに79を使用してください。また、SET_DEBUG_APP権限を含める必要があります。この場合、アプリケーションをシステムキーで署名するか、/ system/app /ディレクトリにインストールする必要があります。

を表示するには、次の

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

はまた何人かの人々は、オプション(代わりに-nの)-aを使用している、これは私のデバイス上のエラーの原因となったものの:

エラー:見つかりません。サービスは開始されませんでした。

7

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

View decorView = getWindow().getDecorView(); 
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
      | View.SYSTEM_UI_FLAG_FULLSCREEN; 
decorView.setSystemUiVisibility(uiOptions); 
+0

これは魅力的に機能しました!ありがとう! – NateW

関連する問題