web-dev-qa-db-ja.com

Android ICS

ICSユーザーにアンケートを完了するためのタブレットを提供するため、ユーザーにアプリのみを使用してもらいます。ホーム画面に切り替えたり、戻るボタンを押したりすることはできません。 。、システムバーを完全に非表示にしたいと思います。

私のタブレットはルート化されており、 this のようなアプリケーションが役立つことを知っていますが、このアプリのすべての追加機能が必要なわけではありません。

私は このチュートリアル を見つけましたが、それは私を助けることができますが、自分でコードを追加できればそれは素晴らしいことです。

10

HideBarには、特にこの使用例のためのキオスクモードがあります。

http://ppareit.github.com/HideBar/ から無料でダウンロードできます。 https://play.google.com/store/apps/details?id=be.ppareit.hidebar の市場でも見つけることができます。

独自のテスト/調査アプリケーションに組み込みたい場合は、いつでも開発者に連絡できます(メールのリンクを参照)。コードを説明したり、非表示にするためのIntentを提供したりできます。

8
ppareit

インターネットで何度も検索した後、システムバーを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");

または、一部の人々は-a(-nの代わりに)オプションを使用しましたが、これは私のデバイスでエラーを引き起こしていました:

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

Android 4.4の場合、没入モードと呼ばれる新機能があり、システムバーとステータスバーの両方が非表示になります。システムUIは、上または下からEdgeスワイプを使用してユーザーが切り替えます画面の詳細については、以下をご覧ください。

http://developer.Android.com/reference/Android/view/View.html#setSystemUiVisibility(int)

Android KitKat で新しいIMMERSIVEモードを使用する==

例えば:

getWindow().getDecorView().setSystemUiVisibility(
          View.SYSTEM_UI_FLAG_LAYOUT_STABLE
        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
        | View.SYSTEM_UI_FLAG_FULLSCREEN
        | View.SYSTEM_UI_FLAG_IMMERSIVE)
11
TheIT

このリンクを確認してください:(ルートが必要です) http://Android.serverbox.ch/?p=306

同様の質問がここにも投稿されました: Android 3.0でシステムバーを非表示にする方法はありますか?内部デバイスであり、ナビゲーションを管理しています

またはHideBarを試してください http://ppareit.github.com/HideBar/

実際には、システムバーを「消灯」モードにするだけで、システムバーのボタンと通知が淡色表示になります。

View v = findViewById(R.id.view_id);
v.setSystemUiVisibility(View.STATUS_BAR_HIDDEN);
6
julian

既存の返信に情報を追加して、誰かに役立つことを期待しています。

私の低コストの中国製タブレットで実際のフルスクリーンを動作させるにはにあるファイルを編集する必要があります

system/build.prop

テキストを置き換える

ro.property.tabletUI=true

#ro.property.tabletUI=true

(私は行をコメントします)。その後、私は使用してフルスクリーンを得ることができます

Android:theme="@Android:style/Theme.Black.NoTitleBar.Fullscreen"

minfest.xmlの各アクティビティ

このソリューションは、アプリケーションと一緒にタブレットを販売し、ルート権限が必要を編集する場合にのみ有効ですsystem/build.propそれはすべてのソリューションではありませんなので、この小さな貢献に反対票を投じないでください。

編集:タブレットのフレームにハードウェアボタン(ホーム、メンズ、バック)があることに気付きました。つまり、Androidを使用すると、システムバーを非表示にできます。ハードウェアボタンのない他のタブレットで試してみました成功なし

4
Seraphim's

GoogleはAndroidを消費者のみに使用することを意図しています。システムUIバーをより密接にAndroid ICS(4.0 )デバイスがルート化されてバーが強制終了されるのを防ぐため、システムバープロセスを削除しようとすると、OSが完全に起動しなくなります。

ユーザーがホーム画面にアクセスするのを制限したい場合は、Android ICSでうまくいきません。Android 2.3。どちらか、またはルート化されたAndroid 3.xデバイスを使用します。

Android=キオスクまたはロックダウンされたデバイスに使用する場合は、少しオープンなOSをターゲットにすることをお勧めします。

3
Jacob

私のユースケースでは、ROOTEDではないデバイスでもメニューバーを非表示にすることで魅力的な解決策が見つかりました。

このフラグを設定する

layoutparams.flags = 0x80000000 | layoutparams.flags;

私のウィンドウのレイアウトパラメータに単純にトリックをします!

これが私が使用した完全なスニペットです:

    Window window = getWindow();
    Android.view.WindowManager.LayoutParams layoutparams = window.getAttributes();
    layoutparams.flags = 0x80000000 | layoutparams.flags;
    window.setAttributes(layoutparams);

私の活動のonCreateで。

これを見つけるために、私は何らかの方法でそれを行うことができることがわかった非システムAPKを逆生成しました。

公式ドキュメントによると:

http://developer.Android.com/reference/Android/view/WindowManager.LayoutParams.html#FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS

「0x80000000」は、APIレベル21でシステム定数として導入されたFLAG_DRAWS_SYSTEM_BAR_BACKGROUNDSであり、「このウィンドウはシステムバーの背景の描画を担当する」ことを基本的に示しています。システムバーを手動で描画していないため、メニューバーは表示されません。

これは、Android ICS 4.0.3を実行しているMoverio BT-200のペアでのみテストしました。これは、現在作業しているデバイスであり、また現在、19未満のApiレベルを実行している他のデバイスをテストするために私の手で持っていません。

2
Manjia

すでに与えられた答えを補足するために、そして同様の行動を必要とする誰かにとって有用である場合のために、Androidデバイス4.0以降のデバイス向けのこのチュートリアルがあります。ナビゲーションバーを非表示にする方法と、ステータスバー(画面に再度タッチすると、ステータスバーが再表示されます):

https://developer.Android.com/training/system-ui/navigation.html

私はそれがあなたが正確に必要とするものではないことを理解していますが、この問題を見ている他の誰かにとって役立つかもしれません。

0
marimaf

ルート化せずにほとんどすべてのすべてのタブレットでメニューバーを無効にする(非表示ではない)回避策があります。しかし、これは少しトリッキーですが、問題なく動作します。現在、この戦略を使用してアプリのメニューバーを無効にする機能を実現する、市場に出回っているいくつかの有名なアプリ。

  • 管理者権限を付与します(アクティブ化するにはユーザーの関与が1回必要です)。
  • プログラムでデバイス管理プロファイルAPIを使用してパスワードを設定し、デバイスをロックします。
  • 次に、ネイティブロック画面の上にUIをロードします。 (もちろん、これはアクティビティ間の遷移が発生するたびにバックグラウンドロック画面を表示します。ただし、ロジックが適切に構成されている場合は、スムーズでユーザーに気づかれません)
  • 元に戻す必要がある場合は、デバイスポリシーマネージャーオブジェクトのresetPassword( ""、0)を使用してパスワードを ""にリセットします。
0
M P Mathugama