10

ユーザーがアンケートに回答できるように ICS タブレットを渡すので、ユーザーには私のアプリだけを使ってもらいたいと思います。ホーム画面に切り替えたり、戻るボタンを押したりできないようにする必要があるため、システム バーを完全に非表示にしたいと考えています。

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

このチュートリアルが役に立ちましたが、コードを追加して自分で行うことができれば、それは素晴らしいことです.

4

8 に答える 8

8

HideBar には、このユース ケース専用のキオスク モードがあります。

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

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

于 2012-08-18T17:32:13.580 に答える
6

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

同様の質問がここにも投稿されました: Is there a way to hide the system bar in Android 3.0? これは内部デバイスであり、ナビゲーションを管理しています

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

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

View v = findViewById(R.id.view_id);
v.setSystemUiVisibility(View.STATUS_BAR_HIDDEN);
于 2012-05-04T08:30:11.677 に答える
4

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

低コストの中国製タブレットで実際の全画面表示を行うには、次の場所にあるファイルを編集する必要があります

system/build.prop

テキストを置き換える

ro.property.tabletUI=true

#ro.property.tabletUI=true

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

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

minfest.xml の各アクティビティについて

このソリューションは、アプリケーションを搭載したタブレットを販売し、.xmlファイルを編集するためにroot 権限が必要なsystem/build.prop場合にのみ有効です。したがって、これはすべての人にとっての解決策ではないため、この小さな貢献に反対票を投じないでください。

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

于 2013-05-06T15:07:01.227 に答える
3

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

ユーザーがホーム画面にアクセスするのを制限したい場合、Android ICS ではうまくいきません。Android 2.3 をプリロードするタブレット メーカーを見つけることをお勧めします。それか、ルート化された Android 3.x デバイスを使用してください。

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

于 2012-06-08T19:28:48.263 に答える
2

私のユースケースでは、ルート化されていないデバイスでもメニューバーを非表示にすることで魅力的に機能するソリューションを見つけました。

このフラグを設定する

layoutparams.flags = 0x80000000 | layoutparams.flags;

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

私が使用した完全なスニペットは次のとおりです。

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

私のActivity 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 であり、基本的に「この Window がシステム バーの背景の描画を担当する」ことを示します。システムバーを手動で描画していないため、メニューバーは表示されません。

Android ICS 4.0.3 を実行している Moverio BT-200 のペアでのみこれをテストしました。これは、私が現在取り組んでいるデバイスであり、現在、19 より前の Api レベルを実行しているデバイスが他にないためです。それをテストします。

于 2015-03-16T14:57:47.967 に答える
0

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

  • 管理者権限を付与します (アクティブ化するには、ユーザーの関与が 1 回必要です)。
  • デバイス管理プロファイル API をプログラムで使用して、パスワードを設定し、デバイスをロックします。
  • 次に、ネイティブ ロック画面の上に UI をロードします。(もちろん、アクティビティ間で遷移が発生するたびにバックグラウンド ロック画面が表示されます。ただし、ロジックが適切に整理されていれば、スムーズになり、ユーザーに気付かれにくくなります)
  • 再度有効にする必要がある場合は、デバイス ポリシー マネージャー オブジェクトの resetPassword("", 0) を使用してパスワードを "" にリセットします。
于 2013-07-10T12:59:17.933 に答える